| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:RE!!!附代码,求牛人指教In Reply To:RE!!!附代码,求牛人指教 Posted by:shenfangyi at 2006-10-17 06:01:35 顶啊,跪求牛人
> #include<stdio.h>
> char a[9][7000000];
> int r[9][10],c[9][10],z[3][3][10];
> struct
> {
> int x,y;
> }b[82];
> main()
> {
> int n;
> scanf("%d",&n);
> for(int nn=1;nn<=n;nn++)
> {
> gets(a[0]);
> int bb=0;
> for(int i=0;i<9;i++)
> {
> gets(a[i]);
> int k=0;
> for(int j=0;j<9;j++)
> {
> while((a[i][k]<'0')||(a[i][k]>'9'))k++;
> a[i][j]=a[i][k];
> k++;
> }
> a[i][9]=0;
> for(int j=0;j<9;j++)
> {
> if(a[i][j]=='0')
> {
> b[bb].x=i;
> b[bb].y=j;
> bb++;
> }
> else r[i][a[i][j]-'0']=c[j][a[i][j]-'0']=z[i/3][j/3][a[i][j]-'0']=1;
> }
> }
> int i=0;
> while(i<bb)
> {
> int j=a[b[i].x][b[i].y]-'0'+1;
> for(;j<10;j++)
> {
> if((!r[b[i].x][j])&&(!c[b[i].y][j])&&(!z[b[i].x/3][b[i].y/3][j]))
> {
> r[b[i].x][j]=c[b[i].y][j]=z[b[i].x/3][b[i].y/3][j]=1;
> a[b[i].x][b[i].y]=j+'0';
> break;
> }
> }
> if(j<10)
> {
> i++;
> if(i<bb)a[b[i].x][b[i].y]='0';
> }
> else
> {
> i--;
> r[b[i].x][a[b[i].x][b[i].y]-'0']=c[b[i].y][a[b[i].x][b[i].y]-'0']=z[b[i].x/3][b[i].y/3][a[b[i].x][b[i].y]-'0']=0;
> }
> }
> printf("Scenario #%d:\n",nn);
> for(int i=0;i<9;i++)puts(a[i]);
> puts("");
> }
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator