Codeforces Round #833 (Div. 2) D
D. ConstructOR
转化题意
a|x=k1d
b|x=k2d
我们考虑k1 k2同样
就只用让x包含a|b
对于a|b的每一位 我们用d的最后一位来填补
然后在线的要是a|b这里有 我们的x没有 显然要让d来填了
这样子就做完了
但是注意的就是我们的a|b的最后一位1要是小于d的最后一位1 那显然无解
void solve(){ int a,b,d;cin>>a>>b>>d; int x=a|b; for(int i=0;i<30;i++){ if((x>>i&1)==1&&(d>>i&1)==0){ cout<<-1<<endl; return; } if((x>>i&1)||(d>>i&1))break; } int t=0; for(int i=0;i<30;i++){ if(d>>i&1){ t=i; break; } } int ans=0; for(int i=0;i<30;i++){ if((x>>i&1)&&(ans>>i&1)==0){ ans+=d<<(i-t); } } cout<<ans<<endl; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】