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

Re:过了的大神可以帮我看下我的代码,为什么不行吗?

Posted by 13975 at 2015-07-17 21:36:03 on Problem 3561
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:
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