A.World Fragments I
字符串、签到
题目大意
给定两个二进制数
每次可以选择 中的一个数位 ,并可执行 或
问能否通过任意次以上操作,使得 ,并给出最少次数
解题思路
这两个二进制数可以视为01串
对于 ,每一位都是0,除非 ,否则无法达成条件
对于 ,必定有一位上是 ,通过题设操作可以转化为任何数,最小次数为这两个数的差的绝对值
bitset是一种非常便于处理01串的STL数据结构,合理利用可以省去很多麻烦
参考程序
void solve()
{
string x,y;
cin >> x >> y;
bitset<1000> a(x),b(y);
ll m,n;
if(a.none()&&b.any()) {cout << "-1" << endl;return;}
m=a.to_ullong();
n=b.to_ullong();
cout << abs(m-n) << endl;
}