「杂题乱刷2」CF862C
1.「算法笔记」构造选讲2.「杂题乱刷」CF1221B3.「杂题乱刷」CF468A4.「杂题乱刷」AT_abc337_e5.「杂题乱刷」洛谷 P88666.「杂题乱刷」CF1937C & CF1936A7.「杂题乱刷」CF1934D28.「杂题乱刷」at_abc092_d & AT_arc093_b9.「杂题乱刷」CF74E10.「杂题乱刷」AT_abc096_d11.「杂题乱刷」CF1973D12.「杂题乱刷」CF1977B13.「杂题乱刷」P827914.「杂题乱刷」P1067815.「杂题乱刷2」CF1015D Walking Between Houses16.「杂题乱刷2」CF1889A Qingshan Loves Strings 217.「杂题乱刷2」CF1567D18.「杂题乱刷2」CF1493C
19.「杂题乱刷2」CF862C
20.「杂题乱刷2」CF1365G21.「杂题乱刷2」AT_arc184_a22.「杂题乱刷2」CF1370F223.「杂题乱刷2」CF2040D24.「杂题乱刷2」CF1738F Connectivity Addicts25.「杂题乱刷2」CF109D怎么题解区里都没有随机化的题解啊 /jy。
于是就有了这篇题解。
题目链接
CF862C Mahmoud and Ehab and the xor
解题思路
思路非常简单。
首先容易发现在
其次我们考虑
之后,我们就可以进行随机化了。
我们考虑先构造两个数为
那么这样,单次错误的概率远远比
参考代码
点击查看代码
#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 IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define endl '\n'
#define QwQ return 0;
#define cfy cout<<"YES\n";
#define cfn cout<<"NO\n";
ll _t_;
ll n,m;
void _clear(){}
map<ll,ll>mp;
long long Ss=chrono::steady_clock::now().time_since_epoch().count();
mt19937_64 Apple(Ss);
long long rand_lr(ll l,ll r){
return Apple()%(r-l+1)+l;
}
ll sum;
void solve()
{
mp.clear();
_clear();
cin>>n>>m;
if(n==1)
{
cfy;
cout<<m<<endl;
return ;
}
if(n==2)
{
if(m!=0)
{
cfy;
cout<<(m^1)<<' '<<1<<endl;
}
else
cfn;
return ;
}
cfy;
cout<<(m^1)<<' ';
mp[m^1]=1;
sum=(m^1);
forl(i,1,n-2)
{
ll rd=rand_lr(1,4e5);
while(mp[rd])
rd=rand_lr(1,4e5);
mp[rd]=1;
cout<<rd<<' ';
sum^=rd;
}
if(mp[sum^m])
{
cout<<"Wrong Answer.\n";
while(1);
}
cout<<(sum^m)<<endl;
}
int main()
{
IOS;
_t_=1;
while(_t_--)
solve();
QwQ;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效