| ||||||||||
| 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 | |||||||||
状态记录算法是16ms,求问此模拟题0ms的算法,请赐教。(附上本人代码)#include<stdio.h>
#define MAXSIZE 11
typedef struct
{
int right;
int down;
}Status;
int main()
{
int casecount=0,n,i,j;
int a[MAXSIZE][MAXSIZE];
char outm[4*MAXSIZE-3][4*MAXSIZE+2];
Status status[MAXSIZE+1][MAXSIZE+1];
for(i=0;i<MAXSIZE;i++) status[i][0].right=-1;
for(j=0;j<MAXSIZE;j++) status[0][j].down=1;
while(scanf("%d",&n) && n)
{
for(i=0;i<4*n-3;i++) outm[i][4*n+1]='\0';
for(i=0;i<4*n-3;i++)
{
for(j=0;j<4*n+1;j++) outm[i][j]=' ';
}
casecount++;
printf("Case %d:\n\n",casecount);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++) scanf("%d",&a[i][j]);
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[i][j]==1)
{
outm[4*i][4*j+2]='O';
outm[4*i][4*j]='H';
outm[4*i][4*j+1]='-';
outm[4*i][4*j+3]='-';
outm[4*i][4*j+4]='H';
status[i][j+1].right=1;
status[i+1][j].down=-1;
}
else if(a[i][j]==-1)
{
outm[4*i][4*j+2]='O';
outm[4*i-2][4*j+2]='H';
outm[4*i-1][4*j+2]='|';
outm[4*i+1][4*j+2]='|';
outm[4*i+2][4*j+2]='H';
status[i][j+1].right=-1;
status[i+1][j].down=1;
}
else
{
if(status[i][j].right==-1)
{
outm[4*i][4*j+2]='O';
outm[4*i][4*j+1]='-';
outm[4*i][4*j]='H';
status[i][j+1].right=-1;
}
else
{
outm[4*i][4*j+2]='O';
outm[4*i][4*j+3]='-';
outm[4*i][4*j+4]='H';
status[i][j+1].right=1;
}
if(status[i][j].down==-1)
{
outm[4*i][4*j+2]='O';
outm[4*i-2][4*j+2]='H';
outm[4*i-1][4*j+2]='|';
status[i+1][j].down=-1;
}
else
{
outm[4*i][4*j+2]='O';
outm[4*i+2][4*j+2]='H';
outm[4*i+1][4*j+2]='|';
status[i+1][j].down=1;
}
}
}
}
for(i=0;i<4*n+3;i++) printf("*");
printf("\n");
for(i=0;i<4*n-3;i++) printf("*%s*\n",outm[i]);
for(i=0;i<4*n+3;i++) printf("*");
printf("\n");
printf("\n");
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator