zoukankan      html  css  js  c++  java
  • HDU-1087 Super Jumping! Jumping! Jumping!

    链接http://acm.hdu.edu.cn/showproblem.php?pid=1087

    题意:一个长度为n的序列,你可以从一个数字跳到下一个比他大的数字上,不能往回跳,总得分就是你跳到的这些数字的总和,问你最大能得到多少分

    思路:最大上升子序列,连续写了好几篇了

    代码

     1 #include<bits/stdc++.h>
     2 #define inf 0x3f3f3f3f
     3 using namespace std;
     4 
     5 typedef long long ll;
     6 typedef long double ld;
     7 
     8 const int M = int(1e5)*2 + 5;
     9 const int mod = 10056;
    10 
    11 inline int lowbit(int x) {
    12     return x & (-x);
    13 }
    14 
    15 int a[M];
    16 int dp[M];
    17 int main(){
    18     int n;
    19     while(cin>>n && n){
    20         memset(a,0,sizeof(a));
    21         memset(dp,0,sizeof(dp));
    22         for(int i=0;i<n;i++) cin>>a[i];
    23 
    24         dp[0]=a[0];
    25         for(int i=1;i<n;i++){
    26             for(int j=0;j<i;j++){
    27                 if(a[j]<a[i]){
    28                     dp[i]=max(dp[i],dp[j]);
    29                 }
    30             }
    31             dp[i]+=a[i];
    32         }
    33 
    34         int maxn=0;
    35         for(int i=0;i<n;i++){
    36             maxn=max(maxn,dp[i]);
    37         }
    38         cout<<maxn<<endl;
    39     }
    40     return 0;
    41 }

    备注

  • 相关阅读:
    XML相关知识点
    MLPlatform开发日志
    1.0 es6 箭头函数
    基本数学概念
    4.4 thymeleaf使用补充
    vim操作手册
    eclise创建后台项目
    正则表达式
    数据库隔离级别
    1. gradle的使用教程
  • 原文地址:https://www.cnblogs.com/harutomimori/p/11287906.html
Copyright © 2011-2022 走看看