⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1125.pas

📁 平时acm训练时ac的源代码
💻 PAS
字号:

#include <stdio.h>

int n,m;
long y[60][60];
char in[60][60],x[60][60],sel[3000];

void read_data()
 {
  int i,j;
  FILE *f=stdin;
  fscanf(f,"%d%d",&m,&n);
  fscanf(f,"%c",&in[0][0]);
  for(i=0;i<m;i++)
   fgets(in[i],100,f);
  for(i=0;i<m;i++)
   for(j=0;j<n;j++)
    fscanf(f,"%ld",&y[i][j]);
 }

void init()
 {
  int i;
  for(i=0;i<=50;i++)
   sel[i*i]=1; //sel[i]== 1 if i==(X*X)
               //         0 else
 }

void expand(int a,int b,int nr)
 {
  int i,j;
  for(i=0;i<m;i++)
   for(j=0;j<n;j++)
    if(j==b || i==a || sel[((i-a)*(i-a)+(j-b)*(j-b))])
     x[i][j]=x[i][j] ^ nr;
 }

void solve()
 {
  int i,j;
  init();
  for(i=0;i<m;i++)
   for(j=0;j<n;j++)
    if(y[i][j])expand(i,j,y[i][j]%2);
 }

void print()
 {
  int i,j;
  FILE *f=stdout;
  for(i=0;i<m;i++)
   {
    for(j=0;j<n;j++)
     if(x[i][j])
      if(in[i][j]=='B')fprintf(f,"W");
      else fprintf(f,"B");
     else fprintf(f,"%c",in[i][j]);
    fprintf(f,"\n");
   }
 }

void main()
 {
  read_data();
  solve();
  print();
 }



if in expand (i-a)=50 and (j-b)=50 then (i-a)*(i-a)+(j-b)*(j-b)=5000

Just change sel[3000] // need more!

and

void init()
 {
  int i;
  for(i=0;i<=50;i++) // not 50!!! need more!!!
   sel[i*i]=1; //sel[i]== 1 if i==(X*X)
               //         0 else
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -