• HDU 2571 命运


    简单DP

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<vector>
    #include<algorithm>
    using namespace std;
    
    const long long INF=999999999999999;
    const int maxn=1000+10;
    long long a[20+10][maxn],dp[20+10][maxn];
    int T,n,m;
    
    int main()
    {
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d%d",&n,&m);
            for(int i=1;i<=n;i++)
                for(int j=1;j<=m;j++)
                {
                    scanf("%lld",&a[i][j]);
                    dp[i][j]=-INF;
                }
            dp[1][1]=a[1][1];
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=m;j++)
                {
                    dp[i+1][j]=max(dp[i+1][j],dp[i][j]+a[i+1][j]);
                    dp[i][j+1]=max(dp[i][j+1],dp[i][j]+a[i][j+1]);
    
                    for(int k=j+j;k<=m;k=k+j)
                        dp[i][k]=max(dp[i][k],dp[i][j]+a[i][k]);
                }
            }
            printf("%lld
    ",dp[n][m]);
        }
        return 0;
    }
  • 相关阅读:
    勇气
    Node.js的安装和配置
    jekins构建时,远程执行shell的问题
    CDMA系统原理二
    详解Android定位
    Docker 简介
    Polly+HttpClientFactory
    K8s-Helm
    k8s-部署应用
    K8S-Pod
  • 原文地址:https://www.cnblogs.com/zufezzt/p/5438870.html
Copyright © 2020-2023  润新知