【动态规划】机器人军团
2016-08-03 20:49
169 查看
问题V:【动态规划】机器人军团
时间限制:1Sec内存限制:64MB提交:21解决:11
[
题目描述
邪狼:“怎么感觉这些机器人比我还聪明?不是说人工智能永远不能超越人类吗?”天顶星人:“你们真是目光短浅,自大而愚蠢!你要知道,如果有意识的智慧生命在无穷无尽的岁月里居然做不到无意识的宇宙曾做过的事(产生智慧生命),这就好像一只无知的猴子在琴键上跳了亿万年居然跳出了一支贝多芬第九交响曲,而有智慧的生物居然几千年也学不会一支简单的小夜曲那样荒谬。如果说永远都做不到,那这在你们的哲学里,不就是神秘论和不可知论了吗?要知道世事无绝对。”
话说在天顶星人的指导下,修罗王建造了一支机器人军团,机器人排成一行,且身高分别为b1,b2,…,bn。修罗王准备从中选出一组满足最长不下降子序列规则的机器人组成一支精锐卫队。所谓不下降子序列(LongestIncreasingSubsequence,LIS)定义为:设有由n个不相同的整数组成的数列b
,若有下标i1<i2<…<iL且b[i1]<b[i2]<…<b[iL],则称存在一个长度为L的不下降序列。
例如13,7,9,16,38,24,37,18,44,19,21,22,63,15。有13<16<38<44<63长度为5的不下降子序列。但经过观察,实际还有7<9<16<18<19<21<22<63长度为8的不下降子序列。那么是不是还有更长的不下降子序列呢?请找出最长不下降子序列的长度。
输入
第一行为n,表示n(n≤100000)个数。第二行为n个数的值。输出
一个整数,即最长不下降序列的长度。样例输入
4 1312
样例输出
2 解题思路:做了好几次的题,结果每次一看却想不起怎么做得来了。主要还是对动态规划的理解不透彻,不大清楚什么样的开一维数组,什么样的开二维数组。 再就是做题的时候独立思考太差,总是想看别人的解题过程。 解题参照:http://www.cnblogs.com/TWS-YIFEI/p/5592511.html 代码:
#include<iostream> #include<cstdio> usingnamespacestd; inta[100005]; intsum[100005]; intmain() { intn; intmaxx=0; scanf("%d",&n); for(inti=0;i<n;i++){ scanf("%d",&a[i]); } sum[0]=1; intans=0; for(inti=1;i<n;i++){ maxx=0; intb=0; for(intj=0;j<i;j++){ if(a[i]>a[j]){ maxx=max(maxx,sum[j]); b=1; } } if(b==1){ sum[i]=maxx+1; ans=max(ans,sum[i]); }else{ sum[i]=1; } } printf("%d",ans); return0; } /************************************************************** Problem:2263 User:zz13 Language:C++ Result:正确 Time:240ms Memory:2476kb ****************************************************************/
相关文章推荐
- 学习java过程中关于生产者消费者模型的一些心得
- 序列化与反序列化
- 嵌入式学习--step6--综合蜂鸣器/按键与跑马灯实验
- Linux 动态库剖析
- java使用idea、dubbox、cxf构建web service
- adjacency_matrix & adjacency_list
- robotframework+selenium2library运行常见问题
- 子集生成算法
- 子集生成算法
- HDU 1404 Digital Deletions
- 【动态规划】单调递增最长子序列
- rtems 4.11 RTC驱动 (arm, beagle)
- C++文件读写详解(ofstream,ifstream,fstream)
- 关于TabHost的详细解析
- 1810: water problem II(今天心情不爽,map)
- 单张图片上传表单提交
- cocos2dx3.x绘制自己的node
- c#.net 是如何访问 SQL Server 数据库
- 我自己的网站--搭建环境(二)
- Windows 7您的凭据不工作