专栏文章

题解:AT_past202109_j 数列の反転

AT_past202109_j题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miovynq4
此快照首次捕获于
2025/12/03 02:02
3 个月前
此快照最后确认于
2025/12/03 02:02
3 个月前
查看原文

解题思路:

对于 k1 操作,直接输出 aka_k 并换行即可。
对于 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 条评论,欢迎与作者交流。

正在加载评论...