错在哪里?
滑雪
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 36292 Accepted: 12739
Description
Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为24-17-16-1。当然25-24-23-...-3-2-1更长。事实上,这是最长的一条。
Input
输入的第一行表示区域的行数R和列数C(1 <= R,C <= 100)。下面是R行,每行有C个整数,代表高度h,0<=h<=10000。
Output
输出最长区域的长度。
Sample Input
5 5
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
Sample Output
25
我的程序如下:
#include<stdio.h>
#include<string.h>
int m,n,max=0,data=0,x,y,most=0;
int da[100][100];
int di[100][100];
bool flag[100][100];
void Max_dai()
{
int i,j,M=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
if(flag[i][j]&&M<da[i][j]){x=i;y=j;M=da[i][j];flag[i][j]=false;}
if(most<di[i][j])most=di[i][j];
}
}
void count(int i,int j)
{
if(i-1>=0&&da[i-1][j]<da[i][j]){if(di[i-1][j]<=di[i][j]+1)di[i-1][j]=di[i][j]+1;count(i-1,j);}//&&!Visit(i-1,j,1)
if(j-1>=0&&da[i][j-1]<da[i][j]){if(di[i][j-1]<=di[i][j]+1)di[i][j-1]=di[i][j]+1;count(i,j-1);}//&&!Visit(i,j-1,2)
if(i+1< m&&da[i+1][j]<da[i][j]){if(di[i+1][j]<=di[i][j]+1)di[i+1][j]=di[i][j]+1;count(i+1,j);}//&&!Visit(i+1,j,3)
if(j+1< n&&da[i][j+1]<da[i][j]){if(di[i][j+1]<=di[i][j]+1)di[i][j+1]=di[i][j]+1;count(i,j+1);}//&&!Visit(i,j+1,4)
}
int main()
{
int j,i;
scanf("%d %d",&m,&n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&da[i][j]);
if(data<da[i][j]){data=da[i][j];x=i,y=j;}
}
memset(di[i],0,sizeof(int)*n);
memset(flag[i],true,sizeof(bool)*n);
}
for(i=0;i<n*m;i++)
{
//if(data==large)break;
most=0;
di[x][y]=1;
count(x,y);
Max_dai();
//most=Max_di();
if(max<most)max=most;
for(j=0;j<m;j++)
memset(di[j],0,sizeof(int)*n);
//set_visit();
}
printf("%d\n",max);
return 0;
}
[解决办法]
楼主不好意思,是在是没看懂你想要表达的意思!
你主要是想要表达完成什么东西的运算还是其他的什么?
[解决办法]
[解决办法]
找迷宫最长路
程序没看出来有什么错
试了几组input output,也都没错
LZ把遇到的问题说清楚一些
BTW,LZ的编程风格很不好,代码可读性很差
[解决办法]
貌似是奇幻方的思想。。。不过真没耐心看下去
[解决办法]
太长了,楼主说说要点
[解决办法]
这么大一段,楼主总要多给点分嘛,现在 都在放假,加班工资都没有。。。。
[解决办法]
看的我头晕啊