得分: 10分
提交日期: 2011-8-9 18:52:00
有效耗时: 47毫秒
测试结果1: 测试结果错误.错误结果为:0
50
正确结果应为:0
7
测试结果2: 测试结果错误.错误结果为:0
4749
正确结果应为:0
53
测试结果3: 测试结果错误.错误结果为:0
116921
正确结果应为:0
269
测试结果4: 通过本测试点|有效耗时47ms
测试结果5: 测试结果错误.错误结果为:1
9
正确结果应为:1
6
测试结果6: 测试结果错误.错误结果为:1
15
正确结果应为:1
9
测试结果7: 测试结果错误.错误结果为:1
40
正确结果应为:1
21
测试结果8: 测试结果错误.错误结果为:1
85
正确结果应为:1
28
测试结果9: 测试结果错误.错误结果为:1
190
正确结果应为:1
41
测试结果10: 测试结果错误.错误结果为:1
490
正确结果应为:1
86
提交代码:
#include<stdio.h>
int B[501][501]={};
long int A[501][501]={};
int n,m,k,sum;
void spread(int x,int y)
{
sum++; /通水总数
if(x==1) k++;
B[x][y]=0;第i,j城染色;
if(x!=1&&B[x-1][y]&&A[x][y]>A[x-1][y])
spread(x-1,y);
if(x!=m&&B[x+1][y]&&A[x][y]>A[x+1][y])
spread(x+1,y);
if(y!=1&&B[x][y-1]&&A[x][y]>A[x][y-1])
spread(x,y-1);
if(y!=n&&B[x][y+1]&&A[x][y]>A[x][y+1])
spread(x,y+1);
}
main()
{
int i,j,so,r;long int max;
scanf("%d%d",&m,&n);
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
scanf("%d",&A[i][j]);
B[i][j]=1; 第i,j城未染色;
}
k=sum=so=0;
while(k<n&&sum<n*m)
{
max=0;
for(i=1;i<=n;i++)水边最高城市
if(B[1][i]&&A[1][i]>max)
{
max=A[1][i];
r=i;
}
spread(1,r);
so++;徐水站个数
}
if(sum==n*m)
printf("%d\n%d",1,so);
else
printf("%d\n%d",0,m*n-sum);
getchar();
getchar();
}
Xeost[5]
得分: 10分
提交日期: 2011-8-9 18:52:00
有效耗时: 47毫秒
测试结果1: 测试结果错误.错误结果为:0
50
正确结果应为:0
7
测试结果2: 测试结果错误.错误结果为:0
4749
正确结果应为:0
53
测试结果3: 测试结果错误.错误结果为:0
116921
正确结果应为:0
269
测试结果4: 通过本测试点|有效耗时47ms
测试结果5: 测试结果错误.错误结果为:1
9
正确结果应为:1
6
测试结果6: 测试结果错误.错误结果为:1
15
正确结果应为:1
9
测试结果7: 测试结果错误.错误结果为:1
40
正确结果应为:1
21
测试结果8: 测试结果错误.错误结果为:1
85
正确结果应为:1
28
测试结果9: 测试结果错误.错误结果为:1
190
正确结果应为:1
41
测试结果10: 测试结果错误.错误结果为:1
490
正确结果应为:1
86
提交代码:
#include<stdio.h>
int B[501][501]={};
long int A[501][501]={};
int n,m,k,sum;
void spread(int x,int y)
{
sum++; /通水总数
if(x==1) k++;
B[x][y]=0;第i,j城染色;
if(x!=1&&B[x-1][y]&&A[x][y]>A[x-1][y])
spread(x-1,y);
if(x!=m&&B[x+1][y]&&A[x][y]>A[x+1][y])
spread(x+1,y);
if(y!=1&&B[x][y-1]&&A[x][y]>A[x][y-1])
spread(x,y-1);
if(y!=n&&B[x][y+1]&&A[x][y]>A[x][y+1])
spread(x,y+1);
}
main()
{
int i,j,so,r;long int max;
scanf("%d%d",&m,&n);
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
scanf("%d",&A[i][j]);
B[i][j]=1; 第i,j城未染色;
}
k=sum=so=0;
while(k<n&&sum<n*m)
{
max=0;
for(i=1;i<=n;i++)水边最高城市
if(B[1][i]&&A[1][i]>max)
{
max=A[1][i];
r=i;
}
spread(1,r);
so++;徐水站个数
}
if(sum==n*m)
printf("%d\n%d",1,so);
else
printf("%d\n%d",0,m*n-sum);
getchar();
getchar();
}
[/quote]