CF1088C

1|0Solution

一个很简单的想法就是将整个序列变成 1n,这时我们需要对每个 ai 执行 mod(aii) 的操作,但是可能 ai<i,所以我们只需要在一开始加上一个极大值即可,刚好 n+1 次操作。

事实上,前面的构造并不完全正确,例如我们无论如何也不能将 4 通过取模变成 2,即 2kk(modp)(kN+) 永远不成立,但是我们可以通过加极大值来避免,这个极大值应至少大于 2×2000,所以这个极大值至少得开到 4001,实测 4001 可过,4000 会 WA。

2|0Code

代码很短,甚至不用开数组。

#include<bits/stdc++.h> #define fi first #define se second #define pb push_back #define mkp make_pair using namespace std; using ll=long long; using pii=pair<int,int>; using pll=pair<ll,ll>; using ull=unsigned long long; inline void read(int &x){ char ch=getchar(); int r=0,w=1; while(!isdigit(ch))w=ch=='-'?-1:1,ch=getchar(); while(isdigit(ch))r=(r<<1)+(r<<3)+(ch^48),ch=getchar(); x=r*w; } int main(){ int n;read(n); printf("%d\n",n+1); printf("1 %d 4001\n",n); for(int i=1,x;i<=n;i++){ read(x); printf("2 %d %d\n",i,x+4001-i); } return 0; }

__EOF__

本文作者JMartin
本文链接https://www.cnblogs.com/LAK666/p/17035551.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Epoch_L  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示