[noip2008] 传纸条

来源:互联网 发布:苹果mac os系统 编辑:程序博客网 时间:2024/04/30 09:33

题目链接

题解:多进程dp

#include <iostream>#include <cstdio>using namespace std;const int M=55;int n,m;short map[M][M];short f[M][M][M][M];inline void pd(int &s,int x){    if(s<x) s=x;}void init(){    cin>>n>>m;    for(int i=1;i<=n;i++)        for(int j=1;j<=m;j++)            scanf("%d",&map[i][j]);}void work(){    for(int i=1;i<=n;i++)          for(int j=1;j<=m;j++)              for(int l=1;l<=n;l++)                  for(int k=1;k<=m;k++)                {                    int s=f[i][j][l][k];                    pd(s,f[i-1][j][l-1][k]);                    pd(s,f[i-1][j][l][k-1]);                    pd(s,f[i][j-1][l-1][k]);                    pd(s,f[i][j-1][l][k-1]);                    s+=map[i][j];                    if(i!=l&&j!=k)                    s+=map[l][k];                    f[i][j][l][k]=s;                }    printf("%d\n",f[n][m][n][m]);}int main(){    init();    work();    return 0;}
0 0
原创粉丝点击