公司网站建设的目标是什么,wordpress书插件,射阳网站开发,微博优惠券网站怎么做的解析
绿题照样不会qwq 一开始的想法是按位分类讨论 辛辛苦苦码了七十行 然后发现当一次性需要进多位的时候就炸了 qwq
关键要考虑到一点#xff1a;异或就是不进位的加法 所以考虑u和v的差值#xff0c;设为d 将其二进制分解#xff0c;然后就是让其在对应的位进位即可 后…解析
绿题照样不会qwq 一开始的想法是按位分类讨论 辛辛苦苦码了七十行 然后发现当一次性需要进多位的时候就炸了 qwq
关键要考虑到一点异或就是不进位的加法 所以考虑u和v的差值设为d 将其二进制分解然后就是让其在对应的位进位即可 后面就简单了
代码
#includebits/stdc.h
using namespace std;
#define ll long long
const int N5e5100;
ll read() {ll x0,f1;char cgetchar();while(!isdigit(c)) {if(c-)f-1;cgetchar();}while(isdigit(c)) {xx*10(c^48);cgetchar();}return x*f;
}int n,m;
ll x,y,mi[70],d;
int a[70],b[70],res[70][4];
int main() {
#ifndef ONLINE_JUDGE//freopen(a.in,r,stdin);//freopen(a.out,w,stdout);
#endifxread(),yread();if(xy||(x1)!(y1)){printf(-1\n);return 0;}if(xy){if(x0) printf(0\n);else printf(1\n%lld\n,x);return 0;}dy-x;n-1;while(x){a[n]x1;x1;}m-1;while(d){b[m]d1;//printf(m%d b%d d%lld\n,m,b[m],d);d1;}nmax(n,m);mi[0]1;for(int i1;in;i) mi[i]mi[i-1]1;int flag2;for(int k0;kn;k){int wa[k],addb[k1];//printf(k%d w%d add%d\n,k,w,add);if(add){if(w){flag3;res[k][1]res[k][2]res[k][3]1;}else{res[k][1]1;res[k][2]1;}}else{res[k][1]w;res[k][2]0;}}printf(%d\n,flag);for(int i1;iflag;i){ll o0;for(int k0;kn;k){if(res[k][i]) o|mi[k];}printf(%lld ,o);}return 0;
}
/*
3
501 502 503
*/