Acwing2058. 笨拙的手指
作者:互联网
#include<iostream>
#include<algorithm>
#include<cstring>
#include<unordered_set>
using namespace std;
//unordered_set中函数insert count的使用
//秦九韶算法将b进制的str返回为十进制数字
int get(string a, int b)//将string类型的b进制数字转换为十进制数字
{
int res = 0;
for (int i = 0; i < a.size(); i++)//秦九韶算法
{
res = res * b + a[i] - '0';
}
return res;
}
int main()
{
string a, b;
cin >> a >> b;
unordered_set<int>s;
for (int i = 0; i < a.size(); i++)//将a的每一位进行异或 并存入s中其十进制的数值
{
a[i] ^= 1;
s.insert(get(a, 2));
a[i] ^= 1;
}
for (int i = 0; i < b.size(); i++)
{
char t = b[i];
for (int j = 0; j < 3; j++)//对b的每一位进行枚举,枚举其他值,如果s中存在,则证明已找到正确的值
{
if (j + '0' != t)
{
b[i] = j + '0';
if (s.count(get(b, 3)))
{
cout << get(b, 3) << endl;
return 0;
}
}
b[i] = t;
}
}
}
标签:笨拙,手指,string,int,res,++,include,Acwing2058,size 来源: https://blog.csdn.net/m0_51305283/article/details/122741814