「杂题乱刷2」CF2036G
1.「杂题乱刷」AT_abc020_c2.「杂题乱刷」CF1846E1 & CF1846E23.「杂题乱刷」CF786C4.「杂题乱刷」Zheng Rui 327 【2018普转提day17专题】洗5.「杂题乱刷」CF1759F6.「杂题乱刷」CF1979C7.「杂题乱刷」CF1985F8.「杂题乱刷」P13969.「杂题乱刷」AT_abc360_d10.「杂题乱刷2」CF1454F Array Partition11.「杂题乱刷2」CF1996F12.「杂题乱刷2」CF1486C1 & CF1486C213.「杂题乱刷2」CF1360H14.「杂题乱刷2」CF862D15.「杂题乱刷2」CF1301C
16.「杂题乱刷2」CF2036G
17.「杂题乱刷2」P1126718.「杂题乱刷2」CF1370F219.「杂题乱刷2」AT_abc140_e20.「杂题乱刷2」CF601B21.「杂题乱刷2」CF2069D22.「杂题乱刷2」P11830 [省选联考 2025] 幸运数字23.「杂题乱刷2」P11843 [USACO25FEB] The Best Subsequence G这题 *2400 纯唐吧,感觉 *1800 差不多。
题目链接
CF2036G Library of Magic(*2400)
解题思路
注:
首先我们想一个通解,就是先二分出第一个数和第三个数,然后第二个数就是所有数的异或和异或上这两个数,操作次数为
但是有个情况特别难受,就是可能会出现中间有数字但是询问结果为
考虑何时会出现这种情况。
由于题目里保证删的数字不同,因此显然查询结果为
于是我们先判断是否有
否则,由于这三个数的异或和为
操作次数
参考代码
点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define re register
#define ll long long
#define forl(i,a,b) for(re ll (i)=(a);i<=(b);(i)++)
#define forr(i,a,b) for(re ll (i)=(a);i>=(b);(i)--)
#define QwQ return 0;
ll _t_;
void _clear(){}
ll n;
ll ans[10];
ll get(ll x,ll y)
{
ll S=0;
forl(i,1,3)
if(x<=ans[i] && ans[i]<=y)
S^=ans[i];
return S;
}
ll ask(ll x,ll y)
{
if(x>n)
return 0;
Min(y,n);
cout<<"xor "<<x<<' '<<y<<endl;
ll z;
cin>>z;
// z=get(x,y);
return z;
}
void print(ll x,ll y,ll z){
cout<<"ans "<<x<<' '<<y<<' '<<z<<endl;
}
ll pw(ll x){
return 1ll<<x;
}
void solve()
{
_clear();
cin>>n;
ans[1]=1;
ans[2]=2;
ans[3]=3;
if(n==3)
{
print(1,2,3);
return ;
}
if(ask(1,n)==0)
{
// cout<<"AWaDa!\n";
forr(i,61,0)
{
ll num=ask(pw(i),pw(i+1)-1);
if(num!=0 && !(num&pw(i)))
{
// cout<<i<<endl;
ll L=pw(i),R=pw(i+1)-1;
while(L<R)
{
ll Mid=(L+R)/2;
ll num=ask(pw(i),Mid);
if(num==0)
L=Mid+1;
else if(ask(pw(i),Mid)&pw(i))
R=Mid;
else
R=Mid;
}
ll _1=L,_2=num^L,_3=_1^_2;
print(_1,_2,_3);
return ;
}
}
exit(-1);
}
else
{
ll all=ask(1,n);
ll _1=0,_2=0,_3=0;
ll L=1,R=n;
while(L<R)
{
ll Mid=(L+R)/2;
if(ask(1,Mid)==0)
L=Mid+1;
else
R=Mid;
}
_1=L;
L=1,R=n;
while(L<R)
{
ll Mid=(L+R+1)/2;
if(ask(Mid,n)==0)
R=Mid-1;
else
L=Mid;
}
_3=L;
_2=all^_1^_3;
print(_1,_2,_3);
}
}
int main()
{
_t_=1;
cin>>_t_;
while(_t_--)
solve();
QwQ;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效