讨论 / 帮忙啊
plokzfadai 2009-10-06 01:23:00
点我顶贴 收藏 删除
为什么过不了第一个测试点?

#include<stdio.h>

main()

{int a[10][10],i,j,k,x=0;

for (i=1;i<=9;i++)

{for (j=1;j<=9;j++) scanf("%d",&a[i][j]);};

for (k=1;k<=9;k++)

{for (i=9;i<=2;i--)

{for (j=1;j<i;j++) {if (a[k][i]==a[k][j]) x+=1;};};};

for (k=1;k<=9;k++)

{for (i=9;i<=2;i--)

{for (j=1;j<i;j++) {if (a[i][k]==a[j][k]) x+=1;};};};

for (k=2;k<=8;k+=3)

{for (i=2;i<=8;i+=3)

{if (a[k-1][i-1]==a[k][i]||

a[k-1][i-1]==a[k][i+1]||

a[k-1][i-1]==a[k+1][i]||

a[k-1][i-1]==a[k+1][i+1]||

a[k][i-1]==a[k-1][i]||

a[k][i-1]==a[k-1][i+1]||

a[k][i-1]==a[k+1][i]||

a[k][i-1]==a[k+1][i+1]||

a[k+1][i-1]==a[k-1][i]||

a[k+1][i-1]==a[k][i]||

a[k+1][i-1]==a[k-1][i+1]||

a[k+1][i-1]==a[k][i+1]||

a[k-1][i]==a[k][i+1]||

a[k-1][i]==a[k+1][i+1]||

a[k][i]==a[k-1][i+1]||

a[k][i]==a[k+1][i+1]||

a[k+1][i]==a[k-1][i+1]||

a[k+1][i]==a[k][i+1]) x+=1;};};

if (x==0) printf("1");

else printf("0");}

#1 hws_sheng@2009-10-06 01:23:00
回复 删除
#include<iostream>

using namespace std;

int Map[10][10];

bool bo[10];

void Chear(int x,int y)

{

memset(bo,false,sizeof(bo));

for (int i=0;i<3;i++)

for (int j=0;j<3;j++){

if (bo[Map[x+i][y+j]]){

cout<<0<<endl;

exit(0);

}

bo[Map[x+i][y+j]]=true;

}

}

int main(){

for (int i=1;i<10;i++){

memset(bo,false,sizeof(bo));

for (int j=1;j<10;j++){

cin>>Map[i][j];

if (bo[Map[i][j]]){

cout<<0<<endl;

return 0;

}

bo[Map[i][j]]=true;

}

}

for (int i=1;i<10;i++){

memset(bo,false,sizeof(bo));

for (int j=1;j<10;j++){

if (bo[Map[j][i]]){

cout<<0<<endl;

return 0;

}

bo[Map[j][i]]=true;

}

}

Chear(1,1);Chear(1,4);Chear(1,7);

Chear(4,1);Chear(4,4);Chear(4,7);

Chear(7,1);Chear(7,4);Chear(7,7);

cout<<1<<endl;

return 0;

}

查看更多回复
提交回复