比赛 2024暑假C班集训E 评测结果 AAAAAAAAAA
题目名称 Swapity Swapity Swap 最终得分 100
用户昵称 健康铀 运行时间 1.135 s
代码语言 C++ 内存使用 8.66 MiB
提交时间 2024-07-14 10:53:10
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int f[35][100003],n,m,k,l,r,a[1000005],b[1000005],c[1000005];
int zhao(int i){
    int ans=k,sum=i;
    for(int j=30;j>=0;j--){
        if(ans>=(1<<j)){
            ans-=(1<<j);
            sum=f[j][sum];
        }
    }
    return sum;
}
int main(){
    freopen("usaco_Feb_swap.in","r",stdin);
    freopen("usaco_Feb_swap.out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    cin>>n>>m>>k; 
    for(int i=1;i<=n;i++)
    c[i]=i;
    for(int i=1;i<=m;i++){
        cin>>a[i]>>b[i];
        l=a[i],r=b[i];
        while(l<r){
            swap(c[l],c[r]);
            
            l++;
            r--;
        }    
    }
    for(int i=1;i<=n;i++){
        f[0][i]=c[i];
    }
    for(int i=1;i<=30;i++){
        for(int j=1;j<=n;j++){
            f[i][j]=f[i-1][f[i-1][j]];
        }
    }
    for(int i=1;i<=n;i++){
        cout<<zhao(i)<<endl;
    }
    return 0;
}