Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register
欢迎参加IJCAI 2020麻将智能体竞赛,大奖等你拿!Welcome to IJCAI 2020 Mahjong AI competition with amazing prizes! | 北京大学《ACM/ICPC大学生程序设计竞赛训练》暑期课面向全球招生!

RE!!!附代码,求牛人指教

Posted by shenfangyi at 2006-10-17 06:01:35 on Problem 2918
#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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator