专栏文章
题解:AT_past202109_j 数列の反転
AT_past202109_j题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miovynq4
- 此快照首次捕获于
- 2025/12/03 02:02 3 个月前
- 此快照最后确认于
- 2025/12/03 02:02 3 个月前
解题思路:
对于
k1 操作,直接输出 并换行即可。对于
k2 操作,我们可以用一个字符串储存要反转的区间,然后使用 reverse 函数反转字符串,然后将原来的区间替换成字符串即可。CODE:
CPP#include<bits/stdc++.h>
using namespace std;
int main(){
int n,q,a[200005];
cin>>n>>q;
for(int x=1;x<=2*n;x++){
a[x]=x;//创建序列 a
}
for(int x=1;x<=q;x++){
int y,z;
cin>>y>>z;
if(y==1) cout<<a[z]<<"\n";//操作1
if(y==2){//操作2
string c;
for(int t=n-z+1;t<=n+z;t++) c+=(char)(a[t]+'0');//储存区间
reverse(c.begin(),c.end());//反转
for(int t=n-z+1,h=0;t<=n+z;t++) a[t]=c[h]-'0',h++;//替换区间
}
}
return 0;//完结撒花~
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...