蓝桥杯练习题:剪格子算法实现.pdfVIP

  • 0
  • 0
  • 约1.11万字
  • 约 12页
  • 2026-03-16 发布于北京
  • 举报

C:#includestdio.h#defineN10intnum[

N][N];inttag[N][N]={0};intm,n;intr=100;

intfind(inti,intj,intt,intntag[][N]){int

count=0;if(i0||i=n||j0||j=m||

ntag[i][j]1)return0;ntag[i][j]=1;if(tag[i

][j]!=t)return0;count++;count+=find(i‑

1,j,t,ntag);count+=find(i+1,j,t,ntag);

count+=find(i,j‑1,t,ntag);count+=

find(i,j+1,t,ntag);returncount;}int

isbad(){inti,j,k=0,ge2;intttag[0][0];i

ntntag1[N][N]={0};intntag2[N][N]={0};

intge1=find(0,0,t,ntag1);for(i=0;in;i

++){for(j=0;jm;j++){if(tag[i][j]!=t){k

=1;break;}}if(k1)break;}

C:

#includestdio.h

#defineN10

intnum[N][N];

inttag[N][N]={0};

intm,n;

intr=100;

intfind(inti,intj,intt,intntag[][N])

{

intcount=0;

if(i0||i=n||j0||j=m||ntag[i][j]1)

return0;

ntag[i][j]=1;

if(tag[i][j]!=t)

return0;

count++;

count+=find(i-1,j,t,ntag);

count+=find(i+1,j,t,ntag);

count+=find(i,j-1,t,ntag);

count+=find(i,j+1,t,ntag);

returncount;

}

intisbad()

{

inti,j,k=0,ge2;

intt=tag[0][0];

intntag1[N][N]={0};

intntag2[N][N]={0};

intge1=find(0,0,t,ntag1);

for(i=0;in;i++)

{

for(j=0;jm;j++)

{

if(tag[i][j]!=t)

{

k=1;

break;

}

}

if(k1)

break;

}

如果(i=njm)返回0;ge2=

find(i,j,tag[i][j],ntag2);返回ge1+ge2!=

m*n;}intbad(inti,intj){intb;如果(i

0||i=n||j0||j=m||tag[i][j]1

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档