1003
来源:互联网 发布:世界网络强国有哪些 编辑:程序博客网 时间:2024/04/28 14:50
题目编号:1003
题目大意:这个和最长上升子序列类似,不过有区别。最长上升子序列是求最长的数的个数,这题是求最大的上升子序列的和。
解题思路:和老师上课讲的最长上升子序列类似的求法,不过有所改动。首先建立2个数组,一个储存给定的数,一个储存到N时最大的和,与最长子序列区别在于它储存的是到N 的最多的个数,也就是最长的那个序列的数字的个数。利用2个循环数组嵌套来找到到N时最大的和,存到数组中,需要用if条件语句来判断,是否是最大。
感想:看透题目本质,利用所学,灵活变化。
#include<iostream>using namespace std;int arr[1001];int brr[1001];int n,i,j,x;int main(){ while(cin>>n&&n) { for(i=1;i<=n;i++) cin>>arr[i]; x=brr[1]=arr[1]; for(i=2;i<=n;i++) { brr[i]=arr[i]; for(j=1;j<i;j++) { if(brr[j]<brr[i]&&brr[j]+arr[i]>brr[i]) brr[i]=brr[j]+arr[i]; } if(x<brr[i]) x=brr[i]; } cout<<x<<endl; } return 0;}
0 0
- 1003
- 1003
- 1003
- 1003
- 1003
- 1003
- 1003
- 1003
- 1003
- 1003
- 1003
- 1003
- 1003
- 1003
- 1003
- 1003
- 1003
- 1003
- mysql 默认八小时空闲自动断开连接
- 关于C++中结构体初始化小结
- Mybatis中配置Mapper的方法
- Oracle存储过程拼接in语句 & 自定义split函数
- 简单错误记录
- 1003
- 近期需要学习的知识点
- Database之增删改查工具类(简单版)
- 通过sql替换mysql 表某字段中的部分内容,
- Activity与Fragment易混点归纳
- Android Socket专题: UDP通信服务器端app的demo的实现
- Scrum简明入门
- 《深入理解SPARK:核心思想与源码分析》(前言及第1章)
- cannot simultaneously fetch multiple bags 的解决方法