期望得分:100+100+30=230
实际得分:0+0+0=30
T1
直接模拟
#include<cstdio> #include<iostream> using namespace std; void read(int &x) { x=0; char c=getchar(); while(!isdigit(c)) c=getchar(); while(isdigit(c)) { x=x*10+c-'0'; c=getchar(); } } #define N 1002 int e[N][N],t[N],pos[N]; int ans[N]; int main() { //freopen("rotate.in","r",stdin); //freopen("rotate.out","w",stdout); int n,p,k,x; read(n); read(p); read(k); for(int i=1;i<=p;i++) { read(e[i][0]); x=e[i][0]; for(int j=1;j<=x;j++) read(e[i][j]); } for(int i=1;i<=n;i++) ans[i]=i,pos[i]=i; for(int i=p;i;i--) { x=e[i][0]; for(int j=1;j<=n;j++) t[j]=pos[j]; for(int j=1;j<x;j++) ans[pos[e[i][j]]]=e[i][j+1],t[e[i][j+1]]=pos[e[i][j]]; ans[pos[e[i][x]]]=e[i][1]; t[e[i][1]]=pos[e[i][x]]; for(int j=1;j<=n;j++) pos[j]=t[j]; for(int j=1;j<=n;j++) cout<<ans[j]<<' '; cout<<'\n'; } for(int i=1;i<=n;i++) cout<<ans[i]<<' '; }