zoukankan      html  css  js  c++  java
  • HDU1087:Super Jumping! Jumping! Jumping!(简单dp)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1087

    水题,可是我却因为dp数组的初始化造成了多遍wa,这题就是求上升序列的最大和。

    转移方程:

    首先要对dp初始化。

    if(w[i]>w[j]) dp[i]=dp[j]+w[i];i>j

    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    #include <algorithm>
    #include <queue>
    #include <math.h>
    #define inf 0x3f3f3f3f
    using namespace std;
    int n,w[10100],dp[10100];
    int main()
    {
        int maxx;
        while(scanf("%d",&n)!=EOF&&n!=0)
        {
            memset(dp,0,sizeof(dp));
            for(int i=0; i<n; i++)
            {
                scanf("%d",&w[i]);
                dp[i]=w[i];//边界问题要好好考虑,输入3 5 3 4
            }
            dp[0]=w[0];
            maxx=w[0];
            for(int i=1;i<n;i++)
            {
                for(int j=0;j<i;j++)
                {
                    if(w[i]>w[j])
                        dp[i]=max(dp[i],dp[j]+w[i]);
                }
                maxx=max(maxx,dp[i]);
            }
            printf("%d
    ",maxx);
        }
        return 0;
    }
  • 相关阅读:
    UIAlertView
    网络请求ASIhttp
    省份城市选择
    Certificates
    UTF8
    xcode增加注释插件
    常用片段 button Label
    开发铺助工具
    iOS UI框架
    iOS 引导页
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/4372848.html
Copyright © 2011-2022 走看看