洛谷P2008-大朋友的数字(DP-最长不下降子序列)

简介: 洛谷P2008-大朋友的数字(DP-最长不下降子序列)

题目描述:


有一批大朋友(年龄15岁以上),他们每人手上拿着一个数字,当然这个数字只有1位,也就是0到9之间。每个大朋友的分数为在他之前的最长不下降子序列中所有数之和。(这个序列必须以它作为结尾!)如有多个最长不下降子序列,那么取编号字典序最小的。现在告诉你有n个大朋友,以及他们各自的数字,请你求出他们每个人的分数。


输入格式:


输入文件为bignum.in。


第一行,1个数n。


第二行,n个数,分别表示每个人的数字。


输出格式:


输出文件为bignum.out。


一行,n个数,分别表示每个人的分数。


输入输出样例:


输入 #1复制


【输入输出样例1】

5

1 2 5 3 4

【输入输出样例2】

5

1 7 5 9 6

输出 #1复制


【输入输出样例1】

1 3 8 6 10

【输入输出样例2】

1 8 6 17 12


说明/提示:


【样例解释1】


五个人分数分别为(1),(1+2),(1+2+5),(1+2+3),(1+2+3+4).


【样例解释2】


五个人分数分别为(1),(1+7),(1+5),(1+7+9){还有一个(1,5,9)},(1+5+6)。


【数据规模】


对于50%的数据,1≤n≤500;


对于80%的数据,1≤n≤1000;


对于100%的数据,1≤n≤10,000。


解题思路:



AC Code:  


#include<bits/stdc++.h>
using namespace std;
#define N 10010
int n,dp[N],sum[N],a[N];
int main() {
  scanf("%d",&n);
  for(int i=1;i<=n;i++) {
    scanf("%d",&a[i]);
  }
  for(int i=1;i<=n;i++) {
    sum[i]=a[i];
    for(int j=1;j<i;j++) {
      if(a[j]<=a[i]&&dp[i]<dp[j]+1) {
        dp[i]=dp[j]+1;
        sum[i]=sum[j]+a[i];
      }
    }
    printf("%d ",sum[i]);
  }
  return 0;
}

相关文章
|
机器学习/深度学习 算法 C++
2019第十届蓝桥杯大赛青少年创意编程省赛C++组试题解析
2019第十届蓝桥杯大赛青少年创意编程省赛C++组试题解析
655 0
|
算法 C语言 C++
二叉树三种遍历(动态图+代码深入理解)
二叉树三种遍历(动态图+代码深入理解)
3242 3
二叉树三种遍历(动态图+代码深入理解)
|
存储 监控 算法
垃圾回收器、垃圾回收算法、空间分配担保、JVM调优、GC回收对象的过程
垃圾回收器、垃圾回收算法、空间分配担保、JVM调优、GC回收对象的过程
340 0
|
前端开发 Java 数据安全/隐私保护
用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程
文章通过一个简单的SpringBoot项目,详细介绍了前后端如何实现用户登录功能,包括前端登录页面的创建、后端登录逻辑的处理、使用session验证用户身份以及获取已登录用户信息的方法。
1771 2
用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程
|
缓存 Java Spring
Spring框架
【7月更文挑战第24天】
484 16
|
存储
【洛谷 P2141】[NOIP2014 普及组] 珠心算测验 题解(集合+多重循环)
**NOIP2014普及组的珠心算测验题要求参赛者找出给定集合中多少个数可表示为其他两个不同数的和。输入含n个正整数,输出满足条件的数的个数。样例输入4个数,输出2,因1+2=3且1+3=4。代码利用集合存储和,遍历所有数对组合,当找到匹配和时插入集合,最后输出集合大小。注意数据规模为n≤100,数不超过10,000。**
415 0
|
SQL 人工智能 Java
Android 命令行工具简介
Android SDK 中包含了开发应用所需的多个软件包。本页列出了可供使用的最重要的命令行工具(按提供这些工具的软件包整理)。
centos使用阿里的yum源
centos使用阿里的yum源
1445 0
|
Shell
android2.3.4没有google map的真机上增加google map(原创)
android2.3.4没有google map的真机上增加google map(原创)
145 4
|
安全 算法 程序员
【C++ 空指针的判断】深入理解 C++11 中的 nullptr 和 nullptr_t
【C++ 空指针的判断】深入理解 C++11 中的 nullptr 和 nullptr_t
1171 0