求改错 DP 万分感谢

P1434 [SHOI2002] 滑雪

吕小臭 @ 2018-04-11 00:08:22

题目如上 代码如下

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); } 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;
}

@


|