今天决定掉头撸dp。。
2016-08-13 19:13
148 查看
在网上找了文章,,大概讲了这题,,
一个有N个元素的整型数组arr,有正有负,数组中连续一个或多个元素组成一个子数组,这个数组当然有很多子数组,求子数组之和的最大值。例如:[0,-2,3,5,-1,2]应返回9,[-9,-2,-3,-5,-3]应返回-2。
然后,,给出的代码是
给一个数组a1, a2 ... an,找到最长的上升降子序列ab1<ab2<
.. <abk,其中b1<b2<..bk。
输出长度即可。
输入描述 Input Description
第一行,一个整数N。
第二行 ,N个整数(N < = 5000)
输出描述 Output Description
输出K的极大值,即最长不下降子序列的长度
样例输入 Sample Input
5
9 3 6 2 7
样例输出 Sample Output
3
然后我的代码是这样子的,,
感觉好暴力啊,,但是跑得还挺快ORZ。
一个有N个元素的整型数组arr,有正有负,数组中连续一个或多个元素组成一个子数组,这个数组当然有很多子数组,求子数组之和的最大值。例如:[0,-2,3,5,-1,2]应返回9,[-9,-2,-3,-5,-3]应返回-2。
然后,,给出的代码是
给一个数组a1, a2 ... an,找到最长的上升降子序列ab1<ab2<
.. <abk,其中b1<b2<..bk。
输出长度即可。
输入描述 Input Description
第一行,一个整数N。
第二行 ,N个整数(N < = 5000)
输出描述 Output Description
输出K的极大值,即最长不下降子序列的长度
样例输入 Sample Input
5
9 3 6 2 7
样例输出 Sample Output
3
然后我的代码是这样子的,,
#include<iostream> #include<algorithm> using namespace std; struct node{ int id,num,mx; }a[5000]; int main() { int n,mx=0; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i].num;a[i].id=i;a[i].mx=1; }int v=1; for(int i=1;i<=n;i++) {for(int j=i+1;j<=n;j++) { if(a[j].num<=a[i].num){continue;} else{a[i].mx++;a[i].num=a[j].num;} }v=(v>a[i].mx)? v:a[i].mx; } cout<<v; return 0; }
感觉好暴力啊,,但是跑得还挺快ORZ。
相关文章推荐
- 今天决定开始准备 信息系统项目管理师 的考试
- 今天决定开始写日记
- 从今天起决定每天写篇BLOG,希望能坚持下去.
- 终于决定辞职了,结束实习,从新出发(今天就请一天假,不复习了)
- 我今天决定开始学习日语
- 今天 我决定写博客
- 今天决定好好放松一下
- 今天正式决定不去路透了。
- 今天决定要开始自己博了,除了转贴,就是要博自己
- 今天决定开始学习Unix/Linux啦
- 今天决定写博客了。。。
- 党史上的今天——1949年3月26日 中共中央通知南京国民党政府,决定派代表和谈
- 今天,我决定辞职了
- 今天的决定!明天的世界!
- 决定今天开始写我的技术博客
- 今天决定开一个博客啦
- LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育
- 今天发现,高手都在CSDN里,所以决定从今以后我的学习主要来源就在此网!
- 今天决定在这安家。
- 今天,我决定离开