zoukankan      html  css  js  c++  java
  • hdoj 2571 命运

    http://acm.hdu.edu.cn/showproblem.php?pid=2571

    就是很普通的根据题意递推了。

    不过题意有个坑的地方,有负值。所以初始化必须为-inf。被坑了好长时间。

    另外 不知道为什么 define 负数就错的 ,非得 改成 const  int  inf 。以后就这样用吧。

    和以前比赛做的那个走格子几乎是同样的。

    View Code
    #include<iostream>
    #include<string.h>
    #include<stdio.h>
    #include<algorithm>
    #define maxn
    const int inf=~0U>>1;//利用define 错了 。。。以后用这个
    using namespace std;
    int dp[25][2000];
    int value[25][2000];
    int main()
    {
        int test;
        int n,m;
        cin>>test;
        while(test--)
        {
            cin>>n>>m;
    
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=m;j++)
                    cin>>value[i][j];
            }
            for(int i=0;i<=n;i++)
            for(int j=0;j<=m;j++)
            dp[i][j]=-inf;//初始化为0错的,以后注意有负值得情况,必须用-inf,因为是自动得到的
    
            dp[1][1]=value[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]+value[i+1][j]);
                    dp[i][j+1]=max(dp[i][j+1],dp[i][j]+value[i][j+1]);
                    for(int k=2;k*j<=m;k++)
                        dp[i][k*j]=max(dp[i][k*j],dp[i][j]+value[i][k*j]);
    
                }
            }
            printf("%d\n",dp[n][m]);
        }
        return 0;
    }
  • 相关阅读:
    软件工程基础
    第一个微信小项目
    数据库实践
    爬虫
    模拟体育竞技
    自己的第一个网页
    科学计算和可视化
    结队项目
    自动生成小学四则运算
    自动生成小学四则运算
  • 原文地址:https://www.cnblogs.com/cs1003/p/2692389.html
Copyright © 2011-2022 走看看