期望得分:100+100+30=230

实际得分:0+0+0=30

 

T1

2017 清北济南考前刷题Day 5 afternoon

 

直接模拟

 

#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]<<' ';
}
View Code

相关文章: