2018全国多校1-C题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fuyuyarei/article/details/79132785

把所有情况都列出来QAQ估计是最笨的方法了
但是做对了还是很开心的hhhh
题目如下
https://www.nowcoder.com/acm/contest/67/C

#include<stdio.h>
#include<string.h>
int map[10][10];
int col[10][10];
int x,y;
void chushihua(){
    memset(map,0,sizeof(map));
    map[1][1]=11;
    map[1][2]=10;
    map[1][3]=9;
    map[1][4]=8;
    map[2][1]=12;
    map[2][4]=7;
    map[3][1]=1;
    map[3][4]=6;
    map[4][1]=2;
    map[4][2]=3;
    map[4][3]=4;
    map[4][4]=5;
}
void yidong(int q,int w){
    for(int i=1;i<=4;i++)
        for(int j=1;j<=4;j++)
    {
        if(map[i][j]==q){
            x=i;y=j;break;
        }
    }
    map[x][y]=0;
    //printf("%d %d ",x,y);
    int to[5][2]={{0,0},{-1,0},{1,0},{0,-1},{0,1}};
    x=x+to[w][0];
    y=y+to[w][1];
    //printf("%d %d\n",x,y);
    map[x][y]=q;
}
void jiance(){
    memset(col,0,sizeof(col));
    for(int i=1;i<=4;i++)
    for(int j=1;j<=4;j++){
      if(map[i][j]>=1 && map[i][j]<=6)
        col[i][j]=1;
      if(map[i][j]>=7 && map[i][j]<=12)
        col[i][j]=2;
      }
      if(x==3 &&col[x][y]==1 && col[x-1][y]==1 && col[x-2][y]==2 &&col[x+1][y]==0){
        map[x-2][y]=0;
      }
      if(x==4 &&col[x][y]==1 && col[x-1][y]==1 && col[x-2][y]==2 &&col[x-3][y]==0){
        map[x-2][y]=0;
      }
      if(x==2 &&col[x][y]==1 && col[x-1][y]==1 && col[x+1][y]==2 &&col[x+2][y]==0){
        map[x+1][y]=0;
      }
      if(x==2 &&col[x][y]==1 &&col[x+1][y]==1 && col[x-1][y]==2 && col[x+2][y]==0){
        map[x-1][y]=0;
      }
      if(x==3 &&col[x][y]==1 &&col[x-1][y]==1 && col[x+1][y]==2 &&col[x-2][y]==0){
        map[x+1][y]=0;
      }
      if(x==2 &&col[x][y]==1 && col[x+1][y]==1 && col[x+2][y]==2 && col[x-1][y]==0){
        map[x+2][y]=0;
      }
      if(x==3 &&col[x][y]==1 && col[x+1][y]==1 &&col[x-1][y]==2 && col[x-2][y]==0){
        map[x-1][y]=0;
      }
      if(x==1 &&col[x][y]==1 && col[x+1][y]==1 &&col[x+2][y]==2 &&col[x+3][y]==0){
        map[x+2][y]=0;
      }

      if(y==3 &&col[x][y]==1 && col[x][y-1]==1 &&col[x][y-2]==2 &&col[x][y+1]==0){
        map[x][y-2]=0;
      }
      if(y==4 &&col[x][y]==1 && col[x][y-1]==1 && col[x][y-2]==2 &&col[x][y-3]==0){
        map[x][y-2]=0;
      }
      if(y==2 &&col[x][y]==1 &&col[x][y-1]==1 && col[x][y+1]==2 &&col[x][y+2]==0){
        map[x][y+1]=0;
      }
      if(y==2 &&col[x][y]==1 &&col[x][y+1]==1 && col[x][y-1]==2 &&col[x][y+2]==0){
        map[x][y-1]=0;
      }
      if(y==3 &&col[x][y]==1 && col[x][y-1]==1 && col[x][y+1]==2 && col[x][y-2]==0){
        map[x][y+1]=0;
      }
      if(y==2 &&col[x][y]==1 && col[x][y+1]==1 && col[x][y+2]==2 && col[x][y-1]==0){
        map[x][y+2]=0;
      }
      if(y==3 &&col[x][y]==1 && col[x][y+1]==1 &&col[x][y-1]==2 && col[x][y-2]==0){
        map[x][y-1]=0;
      }
      if(y==1 &&col[x][y]==1 &&col[x][y+1]==1 && col[x][y+2]==2 && col[x][y+3]==0){
        map[x][y+2]=0;
      }

      if(x==3 &&col[x][y]==2 && col[x-1][y]==2 && col[x-2][y]==1 &&col[x+1][y]==0){
        map[x-2][y]=0;
      }
      if(x==4 &&col[x][y]==2 && col[x-1][y]==2 && col[x-2][y]==1 &&col[x-3][y]==0){
        map[x-2][y]=0;
      }
      if(x==2 &&col[x][y]==2 && col[x-1][y]==2 && col[x+1][y]==1 &&col[x+2][y]==0){
        map[x+1][y]=0;
      }
      if(x==2 &&col[x][y]==2 &&col[x+1][y]==2 && col[x-1][y]==1 && col[x+2][y]==0){
        map[x-1][y]=0;
      }
      if(x==3 &&col[x][y]==2 &&col[x-1][y]==2 && col[x+1][y]==1 &&col[x-2][y]==0){
        map[x+1][y]=0;
      }
      if(x==2 &&col[x][y]==2 && col[x+1][y]==2 && col[x+2][y]==1 && col[x-1][y]==0){
        map[x+2][y]=0;
      }
      if(x==3 &&col[x][y]==2 && col[x+1][y]==2 &&col[x-1][y]==1 && col[x-2][y]==0){
        map[x-1][y]=0;
      }
      if(x==1 &&col[x][y]==2 && col[x+1][y]==2 &&col[x+2][y]==1 &&col[x+3][y]==0){
        map[x+2][y]=0;
      }

      if(y==3 &&col[x][y]==2 && col[x][y-1]==2 &&col[x][y-2]==1 &&col[x][y+1]==0){
        map[x][y-2]=0;
      }
      if(y==4 &&col[x][y]==2 && col[x][y-1]==2 && col[x][y-2]==1 &&col[x][y-3]==0){
        map[x][y-2]=0;
      }
      if(y==2 &&col[x][y]==2 &&col[x][y-1]==2 && col[x][y+1]==1 &&col[x][y+2]==0){
        map[x][y+1]=0;
      }
      if(y==2 &&col[x][y]==2 &&col[x][y+1]==2 && col[x][y-1]==1 &&col[x][y+2]==0){
        map[x][y-1]=0;
      }
      if(y==3 &&col[x][y]==2 && col[x][y-1]==2 && col[x][y+1]==1 && col[x][y-2]==0){
        map[x][y+1]=0;
      }
      if(y==2 &&col[x][y]==2 && col[x][y+1]==2 && col[x][y+2]==1 && col[x][y-1]==0){
        map[x][y+2]=0;
      }
      if(y==3 &&col[x][y]==2 && col[x][y+1]==2 &&col[x][y-1]==1 && col[x][y-2]==0){
        map[x][y-1]=0;
      }
      if(y==1 &&col[x][y]==2 &&col[x][y+1]==2 && col[x][y+2]==1 && col[x][y+3]==0){
        map[x][y+2]=0;
      }
}
int main()
{
    int n;
    int a,b,cout=0;
    while(scanf("%d",&n)!=EOF){
        chushihua();
        for(int i=1;i<=n;i++)
        {
            scanf("%d%d",&a,&b);
            yidong(a,b);
            jiance();
        }
        printf("#Case %d:\n",++cout);
        for(int i=1;i<=4;i++){
                for(int j=1;j<=4;j++)
                printf("%3d",map[i][j]);
        printf("\n");
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/fuyuyarei/article/details/79132785
今日推荐