| ||||||||||
| 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:过了的大神可以帮我看下我的代码,为什么不行吗?In Reply To:Re:过了的大神可以帮我看下我的代码,为什么不行吗? Posted by:13975 at 2015-07-17 12:21:46 > #include<stdio.h>
> char data[20][20];
> int flag[20][20],lineflag,n,m;
> void vervisit(int j,int k)
> {
> if(j-1>=0&&(data[j-1][k]=='|')&&!flag[j-1][k])
> {
>
> flag[j-1][k]=1;
> vervisit(j-1,k);
> }
>
> if(j+1<n&&(data[j+1][k]=='|')&&!flag[j+1][k])
> {
>
> flag[j+1][k]=1;
> vervisit(j+1,k);
> }
> }
> void horvisit(int j,int k)
> {
> if(k+1<m&&data[j][k+1]=='-'&&!flag[j][k+1])
> {
>
> flag[j][k+1]=1;
> horvisit(j,k+1);
> }
> if(k-1>=0&&data[j][k-1]=='-'&&!flag[j][k-1])
> {
>
> flag[j][k-1]=1;
> horvisit(j,k-1);
> }
> }
> void pievisit(int j,int k)
> {
> if((k+1<m)&&(j+1<n)&&(data[j+1][k+1]=='\\')&&!(flag[j+1][k+1]))
> {
>
> flag[j+1][k+1]=1;
> pievisit(j+1,k+1);
> }
> if((k-1>=0)&&(j-1>=0)&&(data[j-1][k-1]=='\\')&&!(flag[j-1][k-1]))
> {
>
> flag[j-1][k-1]=1;
> pievisit(j-1,k-1);
> }
> }
> void navisit(int j,int k)
> {
>
> if((k+1<m)&&(j-1>=0)&&(data[j-1][k+1]=='/')&&!(flag[j-1][k+1]))
> {
>
>
> flag[j-1][k+1]=1;
> navisit(j-1,k+1);
> }
> if((k-1>=0)&&(j+1<n)&&(data[j+1][k-1]=='/')&&!(flag[j+1][k-1]))
> {
>
>
> flag[j+1][k-1]=1;
> navisit(j+1,k-1);
> }
> }
> int main()
> {
> int t,i,j,k;
> scanf("%d",&t);
> for (i=0;i<t;i++)
> {
> lineflag=0;
>
> scanf("%d %d ",&n,&m);
> for(j=0;j<n;j++)
> {
>
> scanf("%s",data[j]);
>
> }
> for(j=0;j<n;j++)
> {
> for(k=0;k<m;k++)
> {
> if(!(flag[j][k])&&data[j][k]=='-')
> {
>
> flag[j][k]=1;
> horvisit(j,k); //把相关点置1,下面的遍历作用相同
> lineflag++;
> continue;
> }
> if(!(flag[j][k])&&data[j][k]=='|')
> {
>
> flag[j][k]=1;
> vervisit(j,k);
> lineflag++;
> continue;
> }
> if(!(flag[j][k])&&data[j][k]=='\\')
> {
>
> flag[j][k]=1;
> pievisit(j,k);
> lineflag++;
> continue;
> }
> if(!(flag[j][k])&&data[j][k]=='/')
> {
>
> flag[j][k]=1;
> navisit(j,k);
> lineflag++;
> continue;
> }
> }
> }
>
> if(lineflag==1)
> {
> printf("CORRECT\n");
> }
> else
> {
> printf("INCORRECT\n");
> }
>
> }
> return 0;
> }
flag数组没置零。
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator