暑假集训(5)第一弹——— Super Jumping! Jumping! Jumping!(hdu1087)

题意概括:在上次与娑殚的三次博弈中,你们都取得了胜利。便向娑殚提出要求,借助他的力量,传送到一个安全的地方。

你们的愿望达成了,不过,你和小A似乎失散了。

街上人来人往的特别热闹,每一个人的脸上都洋溢着幸福.“咕咕......"额,掏了掏身上的口袋,除你之外。

“听说了嘛,德源街哪有个脑力比赛,据说优胜者可以去”吃到饱“饭店吃到饱,而且前三名还会有神秘奖品......"

这次,为了填饱......嗯,为了生存,你决定参加这个比赛,比赛要求你得到在给定的数字中得到最大循序上升序列和。

问题分析:求得是最大递增子序列和,用递推法,首先i 需要逆序排列,先算出后面的,然后逐步递推。

方程为 打dp[i] = max(dp[i],m[i]+dp[j]);

 1 #include "cstdio"
 2 int m[1000];
 3 int dp[1000];
 4 void mbegin(int n)
 5 {
 6     for (int i=0;i<n;i++)
 7     {
 8         scanf ("%d",&m[i]);
 9         dp[i] = m[i];
10     }
11 }
12 int max(int x,int y)
13 {
14     return x>y?x:y;
15 }
16 int main()
17 {
18     int n;
19     __int64 sum;
20     while (scanf ("%d",&n) && n)
21     {
22         mbegin(n);
23         for (int i=n-1;i>=0;i--)
24          for (int j=i;j<n;j++)
25          {
26             if (m[i] < m[j])
27                dp[i] = max (dp[i],m[i]+dp[j]);
28          }
29         sum = dp[0];
30         for (int i=0;i<n;i++)
31         {
32            if (sum < dp[i])
33                 sum = dp[i];
34         }
35         printf ("%I64d\n",sum);
36     }
37
38     return 0;
39 }

时间: 2024-12-20 13:03:03

暑假集训(5)第一弹——— Super Jumping! Jumping! Jumping!(hdu1087)的相关文章

暑假集训(4)第一弹 -----递推(Hdu2039)

题意梗概:fff团团员小A想退团了,不过要退团,他必须绘制出贤者法阵,以证明他有资格不受大fff之灵的监督 并退团,小A他现在要开始收集材料了,但是,他不清楚应该买多少份材料. 虽然你并不想帮他退团,但为了社会主义核心价值观观建设,你要告诉他需要买多少份材料,即N个三角形最多可 以把一个平面分成几个区域,就需要买几份材料. 问题分析:一个三角形时显然只能有2份,此时图形有3个顶点,即第二个三角形与第一个三角形最多只能有6个交 点,则有2+6 = 8份,由此类推得公式为 3*n*(n-1)+2.

暑假集训(2)第二弹 ----- The Suspects(POJ1611)

B - The Suspects Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:20000KB     64bit IO Format:%lld & %llu Description 严重急性呼吸系统综合症( SARS), 一种原因不明的非典型性肺炎,从2003年3月中旬开始被认为是全球威胁.为了减少传播给别人的机会, 最好的策略是隔离可能的患者. 在Not-Spreading-Your-Sic

暑假集训(4)第二弹 -----递推(hdu2254)

题意概括:上次小A在你的帮助下成功把贤者法阵的第一部分——三角分隔,现在他准备绘制法阵的第二部分——莫测矩形. 而他又遇到了一个问题,他不知道不同矩形到底有多少个. 秉持帮人帮到底,送佛送到西的基本法,你需要告诉他不同矩形的个数. 问题分析:假如矩形长度为1,宽度为m,则可构成矩形个数为m+m-1+.......+1,即m*(m+1)/2,如果长度为n那么只需再 乘以n*(n+1)/2; 得到公式 s=n*m*(n+1)*(m+1)/4. 1 #include "cstdio" 2 i

暑假集训(5)第二弹———湫湫系列故事——减肥记I(hdu4508)

问题描述:舔了舔嘴上的油渍,你陷在身后柔软的靠椅上.在德源大赛中获得优胜的你,迫不及待地赶到“吃到饱”饭店吃到饱.当你 正准备离开时,服务员叫住了你,“先生,您还没有吃完你所点的酒菜.”指着你桌上的一片狼藉,不过仍有很多残余“军力”的景象.你刚刚还红光满面的脸一下变成霜打的茄子.看着桌上仍留的美食,正犯愁.“我可以帮你解决它.”你看向旁边,发现她也便是德源大赛 的参赛者啾啾.还没来得及说谢谢.她便提出了条件,给出食物所含能量.幸福度以及摄入最大能量限制,如何在不超过最大能量限制的 情况下获得最大

暑假集训(2)第五弹 ----- Who&#39;s in the Middle(poj2388)

G - Who's in the Middle Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description FJ is surveying his herd to find the most average cow. He wants to know how much milk this 'median

RMQ_第一弹_Sparse Table

title: RMQ_第一弹_Sparse Table date: 2018-09-21 21:33:45 tags: acm RMQ ST dp 数据结构 算法 categories: ACM 概述 RMQ (Range Minimum/Maximum Query) 从英文便可以看出这个算法的主要是询问一个区间内的最值问题,,, 暑假集训的时候学习了 线段树 ,,, 也可以对给定数组查询任意区间的最值问题,,,, 这两个主要的区别就是 线段树 可以进行单点的修改操作,,,而 Sparse Ta

暑假集训练习赛题解

比赛链接:http://acm.nyist.net/JudgeOnline/problemset.php?cid=205 对于第一道题 UFS(Union  Find  Set) ,请参见http://blog.csdn.net/u011632342/article/details/37814289,题目大意一样,解法一样,不过后台测试数据还没整太多,数据比较弱... 对于第二道题STR(STRing),本来是想着给大家"送福利"呢,可能由于我的题目表述能力不太好或者样例数据的特殊性或

ACM暑假集训总结

暑假集训总结 回想去年暑假集训,和boblee.yyd组队时,他们为了复习考研,只有我一人默默的在基地训练,再到今年和yj.cq组队,三人能在基地一起刷题训练.再回想去年暑假自己作为新人,只能抱着两位队友的大腿,到今年作为一队的成员,要挑起集训队的大梁.从去年的全俱乐部开黑只能压线过几场网络赛,再到今年的队伍间各自做题,照样能没什么压力的通过网赛.亲眼见证俱乐部由弱到强,由不为人知到众所周知,自己不仅感触颇多,也同样敬佩起当初办起这个俱乐部的创始人们. 作为一个刚刚接触OI就要面临高考的人,才刚

自定义特效VIew第一弹之竖直TextView

自定义特效VIew第一弹之竖直TextView 别的不说,先给出效果 再给出代码 <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" > <com.example.empty.VerticalTextView android:layout_width="wrap_content" android:layout_