吕小臭 @ 2018-04-11 00:08:22
题目如上 代码如下
int r,c;
int a[105][105];
int f[105][105];
const int dx[]={-1,0,1,0},dy[]={0,1,0,-1};
bool ok(int i,int j)
{
return (i>=1 && i<=r && j>=1 &&j<=c);
}
using namespace std;
int main()
{
scanf("%d%d",&r,&c);
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
{
scanf("%d",&a[i][j]);
f[i][j]=1;
}
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
for(int k=0;k<4;k++)
if(ok(i+dx[k],j+dy[k]))
if(a[i+dx[k]][j+dy[k]]<a[i][j])
if(f[i][j]<f[i+dx[k]][j+dy[k]]+1)
f[i][j]=f[i+dx[k]][j+dy[k]]+1;
int mx=-1000;
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
if(f[i][j]>mx)
mx=f[i][j];
printf("%d",mx);
return 0;
}
嗯呐,万分感谢
输出答案就不对。。。。。。。(我说样例)
by sxyugao @ 2018-04-11 07:40:45
你这个格式谁看啊。。
需要在代码前后加三撇(大键盘数字1左边那个)
by 吕小臭 @ 2018-04-11 23:16:01
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
int r,c;
int a[105][105];
int f[105][105];
const int dx[]={-1,0,1,0},dy[]={0,1,0,-1};
bool ok(int i,int j)
{
return (i>=1 && i<=r && j>=1 &&j<=c);
// if()
// return true;
// else
// return false;
}
using namespace std;
int main()
{
scanf("%d%d",&r,&c);
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
{
scanf("%d",&a[i][j]);
f[i][j]=1;
}
// memset(f,0,sizeof f);
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
for(int k=0;k<4;k++)
if(ok(i+dx[k],j+dy[k]))
if(a[i+dx[k]][j+dy[k]]<a[i][j])
if(f[i][j]<f[i+dx[k]][j+dy[k]]+1)
f[i][j]=f[i+dx[k]][j+dy[k]]+1;
int mx=-1000;
for(int i=1;i<=r;i++)
for(int j=1;j<=c;j++)
if(f[i][j]>mx)
mx=f[i][j];
printf("%d",mx);
return 0;
}
@