[杂题] Codeforces #598B. Queries on a String

来源:互联网 发布:武神赵子龙辅助软件 编辑:程序博客网 时间:2024/05/21 11:30

简单题。直接考虑原来的某个位置的元素最后到了哪里….O(nm)

#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=10005,maxm=305;int n,m,L[maxm],R[maxm],rd[maxm];char s[maxn],res[maxn];int main(){    freopen("cf598B.in","r",stdin);    freopen("cf598B.out","w",stdout);    scanf("%s",s+1); n=strlen(s+1);    scanf("%d",&m);    for(int i=1;i<=m;i++) scanf("%d%d%d",&L[i],&R[i],&rd[i]), rd[i]%=R[i]-L[i]+1;     for(int i=1,now;i<=n;i++){        now=i;        for(int j=1;j<=m;j++) if(L[j]<=now&&now<=R[j]) now=L[j]+(now-L[j]+rd[j])%(R[j]-L[j]+1);        res[now]=s[i];    }    for(int i=1;i<=n;i++) putchar(res[i]);    return 0;} 
原创粉丝点击