Windows Of CCPC

#include<stdio.h>
const int maxn=1e3+100;
int a[maxn][maxn];
void dfs(int x)
{  if(x==1024)
   return;
    for(int i=1;i<=x;i++)
    {
        for(int j=x+1;j<=x*2;j++)
            a[i][j]=a[i][j-x];
    }
    for(int i=x+1;i<=2*x;i++)
    {
       for(int j=x+1;j<=2*x;j++)
            a[i][j]=a[i-x][j-x];
    }
    for(int i=x+1;i<=2*x;i++)
    {
        for(int j=1;j<=x;j++)
            a[i][j]=(a[i-x][j]^1);
    }
    dfs(2*x);
}
int b[11]={0,2,4,8,16,32,64,128,256,512,1024};
int main()
{
   a[1][1]=1;
   a[1][2]=1;
   a[2][1]=0;
   a[2][2]=1;
   dfs(2);
   int t;
   scanf("%d",&t);
   while(t--)
   { int n;
       scanf("%d",&n);
      int se=b[n];
      for(int i=1;i<=se;i++)
      {
          for(int j=1;j<=se;j++)
            if(a[i][j]==1)
            printf("C");
          else
            printf("P");

          printf("\n");
      }

   }
}

递归实现

posted @ 2021-08-24 09:10  废柴废柴少女  阅读(55)  评论(0)    收藏  举报