LighTeers @ 2019-05-23 16:55:23
这里是代码
#include<bits/stdc++.h>
#define f(i,m,n) for(int i=m;i<=n;i++)
#define N 100+5
using namespace std;
struct note{ int x,y,sum; }p[N*N];
int f[N][N],h,gc[N][N],r,c,ans=-1;
int dire[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
bool cmp(note a,note b){ return a.sum>b.sum; }
int main()
{
scanf("%d%d",&r,&c);
f(i,1,r)f(j,1,c)
{
scanf("%d",&gc[i][j]);f[i][j]=1; //收集数据,p[]数组收集每个点的坐标和大小。
h++;p[h].x=i,p[h].y=j,p[h].sum=gc[i][j];
}
sort(p+1,p+1+h,cmp); //根据p[].sum数据从大到小排序。
f(i,1,h)
{
int nx=p[i].x,ny=p[i].y;
f(j,0,3)
{
int gx=nx+dire[j][0],gy=ny+dire[j][1];//从大到小,将每一个点周围四个点作比较,若周围数据较大,则进行动态规划。
if(gc[gx][gy]>gc[nx][ny])f[nx][ny]=max(f[nx][ny],f[gx][gy]+1);//动态规划
}
ans=max(ans,f[nx][ny]); //动态规划
}
printf("%d\n",ans);
return 0;
}
by LighTeers @ 2019-05-23 16:58:42
或者说能直接说出错误在哪里最好。
by 良辰、 @ 2019-05-23 18:23:21
可以自己下载数据鸭鸭鸭qwq
by LighTeers @ 2019-05-24 09:10:04
@良辰、 数据下载不了啊。能不能看下代码有没有bug。