问题描述
- 求大神,ZOJ 1002题怎么老出错
-
题目链接
http://acm.zju.edu.cn/onlinejudge/showRuns.do?contestId=1
提交结果老是的回复是 wrong answer、
样本输入输出都正确。
我提交是用C++提交的,这个应该不成问题
求大神指点。 C语言
以下是我提交的源代码#include"stdio.h"
#define N 6
char net[N][N];//最大存储数据容量
int MAX,max;//MAX为最终最大值,max为一轮最大值
int n;//一轮测试值网格大小
bool Find(int i,int j)
{
int p; //从上下左右搜索是否可以防治碉堡
for(p=i-1;p>=1;p--)//往上
{
if(net[p][j]=='*')
return false;
if(net[p][j]=='X')
break;
}
for(p=i+1;p<=n;p++)//往下
{
if(net[p][j]=='*')
return false;
if(net[p][j]=='X')
break;}
for(p=j-1;p>=1;p--)//往左
{
if(net[i][p]=='*')
return false;
if(net[i][p]=='X')
break;
}
for(p=j+1;p<=n;p++)//往右
{
if(net[i][p]=='*')
return false;
if(net[i][p]=='X')
break;
}
return true;
}
void FLS()
{
if(max>MAX)
MAX=max;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(net[i][j]=='.'&&Find(i,j))
{
net[i][j]='*';
max++;
FLS();
max--;
net[i][j]='.';
}
}
void Fire_net()
{
int i,j;
scanf("%d",&n);
getchar();
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
scanf("%c",&net[i][j]);
getchar();
}
FLS();
printf("%dn",MAX);}
int main()
{
Fire_net();
return 0;
}
解决方案
http://blog.csdn.net/jack_wong2010/article/details/6709764
http://blog.csdn.net/zxy_snow/article/details/5952668
http://blog.csdn.net/rongyongfeikai2/article/details/7301408
http://www.cnblogs.com/hoodlum1980/archive/2008/10/24/1318407.html