当前位置: 首页 > news >正文

【题解】CF2246E

0:总览

我们注意到,只要知道 \(v\) 中某个二进制位的值即可求解

那么如何通过第一次询问求出 \(v\) 中某个二进制位的值呢?

这次询问其实分为两步,第一步是根据回答判断符号,第二步是根据符号中某个二进制位的值

1:推导符号

要判断符号,有一个直观的想法是钦定 \(x=1\)

如果 \(r\) 存在高位 \(1\),则为 | \((r>1)\)

如果 \(r\) 最低位为 \(0\),则为 & \((r=0)\)

否则我们无法判断符号,似乎无计可解,但我们尝试继续深入

2:由符号求值,并求解(已知值,则求解显然)

2.1 \(r=0\)

运算符一定为 &

\(v\) 的最低位为 \(0\)

钦定 \(m_0=0,m_1=1\)

2.2 \(r>1\)

运算符一定为 |

那么我们可以确定 \(v\) 任何 \([1,30]\) 位的值

钦定 \(m_0=0,m_1=2^q\)

2.3 \(r=1\)

2.3.1

此时我们无法确定运算符,故而我们无法确定 \(v\) 某一二进制位的值

单靠 \(d\) 是无法求解的,我们能不能使用 \(m_0\)\(m_1\) 来判断?

如果是 | ,此时 \(r \in \{ m_0,m_1 \}\)

如果是 $,此时大概率 \(r \notin \{m_0,m_1\} (m_0 \oplus v \neq m_1)\)

2.3.2

综合 | 和 & 的两种情况,我们尝试反推,如果 \(r \in \{m_0,m_1\}\),则大概率为 |,启发随机化

我们可不可以同时处理这两种情况?

那么我们可以随机 \(m_0\)\(m_1\) 的值,使得 \(m_0\) 是偶数,\(m_1\) 是奇数

得到 \(r\)

如果 \(r \in \{m_0,m_1\}\),那么 \(v=0\),则看和 \(m_1,m_2\) 哪个相等

否则 \(v\) 的最低位一定是 \(1\),判断 \(r\) 最低位 奇偶 即可

3:代码

#include<bits/stdc++.h>
using namespace std;
mt19937 rnd(time(0));
void solve(){cout<<1<<endl;int o;cin>>o;if(o==0){//0cout<<0<<" "<<1<<endl;int x;cin>>x;if(x%2==0) cout<<0<<endl;else cout<<1<<endl;}else if(o>1){//1int val=0;for(int i=31;i>=0;i--){if(o>>i&1){val=1<<i;break;}}int m0=0,m1=val;cout<<m0<<" "<<m1<<endl;int x;cin>>x;if(x&val) cout<<0<<endl;else cout<<1<<endl;}else{int m0=rnd()%(1<<30)+1,m1=rnd()%(1<<30)+1;if(m0&1) m0--;if(m1%2==0) m1++;cout<<m0<<" "<<m1<<endl;int r;cin>>r;if(r==m0||r==m1){if(r==m0) cout<<0<<endl;else cout<<1<<endl; }else{if(r&1) cout<<0<<endl;else cout<<1<<endl;}}
}
int main(){int t;cin>>t;while(t--) solve();return 0;
}

4:反思

http://www.jsqmd.com/news/1189246/

相关文章:

  • 2026北京LV回收哪家正规?毓典全国连锁、资质齐全合规回收LV箱包腕表 - 旧奢新值
  • Python计算机视觉入门:从环境搭建到数字识别项目实战
  • 计算机毕业设计之基于springboot框架的学生成绩管理系统
  • 基于行业共识的多源数据融合验证体系——(交叉验证的背景与必要性)
  • 告别命令记忆烦恼!SmartShell交互模式使用教程:3步轻松生成复杂命令
  • UE5 2D动画高效管理:PaperZD插件从入门到精通实战指南
  • 济南包包回收上门多少钱 正规连锁门店报价有无折损费用 - 讯息早知道
  • 长沙天心区防水补漏|维小达|不拆除补漏、室内防水、屋面防水、外墙防水、飘窗防水、阳台防水、地下室防水补漏、厨卫漏水一站式修缮服务 - 一点传媒
  • 西安线下收表门店挑选攻略,实地走访多家实体对比资质 - 讯息早知道
  • 多模态AI影视评论生成:从特征融合到专业评论的技术实现
  • 2026年7月深圳刑事律师行业深度解析:八强全维服务能力对标与科学选型指南 - 优企名品
  • Ubuntu22.04部署MuJoCo210与mujoco-py:从零到一的避坑实战指南
  • 万字全景:超声波雷达和毫米波雷达的强劲对手——UWB近场感知技术
  • **2026毓典奢品汇:天津卡地亚首饰回收终极指南,LOVE保值密码与五大门店实测排行** - 二奢行情速报
  • TPA3138D2与PIC32MX664F064L在嵌入式音频系统中的应用
  • 从事件流到事件委托:掌握JavaScript事件传播的核心机制
  • 计算机毕业设计之基于SpringBoot驾校信息管理系统
  • 06.Android内存泄露和内存溢出
  • 手动创建ROS package与rebuild全流程详解
  • 出手字画无需处处设防,丰宝斋公道估价以诚相待 - 深鉴新闻
  • UE5 Groom组件实战:从原理到实现角色动态头发效果
  • 遗传算法工程化:从黑箱优化到可诊断可控演化系统
  • 从像素搜索到深度学习:工业表面缺陷检测的图像处理演进与实践
  • 终极AI图像视频增强指南:Waifu2x-Extension-GUI完整使用教程
  • 2026 西安黄金回收门店白名单,新手闲置变现少亏差价 - 讯息早知道
  • 从抽象到具象:GPT-Image-2 的纹理与材质控制实测
  • openeuler/compliance API使用教程:如何集成合规扫描到你的开发流程
  • 2026年华阳KTV口碑推荐榜TOP5,去了一次还想再去! - 官方资讯
  • 深度学习入门:基于Python的实践路径与代码实现
  • 负强化在LLM推理中的优化效果与应用