zoukankan      html  css  js  c++  java
  • Super Jumping! Jumping! Jumping!(求最大上升子序列和)

    题目链接HDU - 1087

    题目:

     

    这道题的题意是:有一个游戏叫“超级跳跃”,它有一个棋盘和一些棋子,所有棋子上面标记一些正整数,或者start,或者end。玩家从起点开始,最后必须跳到终点。在跳跃的过程中,玩家会访问路径中的棋子,但是每个人都必须从一个棋子跳到另一个绝对大的棋子(可以假设起点是最小的,终点是最大的)。所有的玩家都不能倒退。一跳可以从一个棋子跳到下一个,也可以跨越多个棋子,甚至可以从起点直接到达终点。当然在这种情况下你得零分。一个球员只有当他能根据他的跳投方案得到更高的分数时,他才是赢家。

    题解:这道题看题目,在看输入与输出,就是求最大上升子序列和,然后这道题可以作为最大上升子序列和的模板。(具体什么解释明天再说 太困了,就先上代码,而且感觉代码要比我讲的要跟清楚,更让人理解)

    ac代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 using namespace std;
     5 const int maxn = 1005;
     6 int ah[maxn];
     7 int sum[maxn];
     8 int main(){
     9     int n;
    10     while(~scanf("%d",&n)){  
    11         if(!n)break;
    12         for (int i = 1; i <= n; i++)
    13         {
    14             scanf("%d", &ah[i]);
    15             sum[i]=ah[i]; 
    16             for (int j = i - 1; j > 0; j--)
    17             {
    18                 if (ah[i] > ah[j])
    19                     sum[i] = max(sum[j] + ah[i], sum[i]);
    20             }
    21         }
    22         int maxx = *max_element(sum + 1, sum + 1 + n);
    23         printf("%d
    ", maxx);
    24     }
    25     
    26       
    27 }
    View Code

    因为我很菜,希望有哪里讲错的,希望各位大佬指出。同时如果有不理解的可以找我讨论。

    最后,祝各位老板身体健康,刷题愉快,次次ac!

  • 相关阅读:
    docker的基本操作
    docker和虚拟化技术的区别
    项目命名规则
    Javascript IE 内存释放
    关于ie的内存泄漏与javascript内存释放
    Java遍历HashMap并修改(remove)
    java 中类的加载顺序
    java类的加载以及初始化顺序 .
    JavaScript也谈内存优化
    JavaScript 的垃圾回收与内存泄露
  • 原文地址:https://www.cnblogs.com/kitalekita/p/13290632.html
Copyright © 2011-2022 走看看