无知时诋毁原神——题解
P8880 无知时诋毁原神
题意简述:
给定一个
题解
构造题考脑子……
模
首先直觉告诉我们,方案数应该是有不少的,但应该有一种固定的构造方案。并且拼出大于等于
:
:0,2,1。
:0,2,1。
:
:0,3,1,4,2。
:0,3,1,4,2。
:
:0,4,1,5,2,6,3。
:0,4,1,5,2,6,3。
。无解
我们发现,在
首先证明充分性:
这里就用去了
将这些数全部减去
然后再来思考一下偶数的情况,为什么我们试三个偶数都是无解呢?
由于刚刚的奇数情况,我们用到了奇偶性的思想,考虑再从奇偶性的角度考虑证明偶数无解或者一种优秀的构造方案。
由于是偶数,
故就得到了本题代码:
int n,a[5000005],b[5000050],vis[5000500];
int main(){
cin>>n;
for(int i=0;i<n;i++)b[(i<<1)%n]=i;
for(int i=1;i<=n;i++){
cin>>a[i];
a[i]=b[a[i]];
}
for(int i=1;i<=n;i++){
if(vis[a[i]]){
puts("-1");
return 0;
}
vis[a[i]]=1;
}
for(int i=1;i<=n;i++)cout<<a[i]<<" ";
puts("");
for(int i=1;i<=n;i++)cout<<a[i]<<" ";
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!