scau实验题 8596 Longest Ordered Subsequence
其实解释POJ 2533 原题
最长上升子序列,用O(N*N)算法和o(n*logn)算法分别实现,学校OJ的数据比较弱,就算写成最长不下降子序列也可以通过,但是在POJ上是WA的
而题意本身应该是严格递增的
o(N*N)
#include <stdio.h> #include <string.h> #define N 10010 int a[N]; int n;void LOS() {int dp[N],i,j,tmp,max;memset(dp,0,sizeof(dp));dp[1]=1; max=1;for(i=2; i<=n; i++){for(tmp=0,j=1; j<i; j++)if(a[i]>a[j] && dp[j]>tmp)tmp=dp[j];dp[i]=tmp+1;if(dp[i]>max) max=dp[i];}printf("%d\n",max); } int main() {int i;while(scanf("%d",&n)!=EOF && n){for(i=1; i<=n; i++) scanf("%d",&a[i]);LOS();}return 0; }
O(n*logn)
#include <stdio.h> #include <string.h> #define N 1010 int a[N],c[N],n;int binary_search(int key , int l , int r) {int mid;while(l<=r){mid=(l+r)/2;if(c[mid]<key && key<=c[mid+1]) return mid+1;else if(key<=c[mid]) r=mid-1;else l=mid+1;} } void LOS() {int i,j,x,top;memset(c,0,sizeof(c));c[1]=a[1]; top=1;for(i=2; i<=n; i++){if(a[i]<=c[1]) c[1]=a[i];else if(a[i]>c[top]) c[++top]=a[i];else{x=binary_search(a[i],1,top);c[x]=a[i];}}printf("%d\n",top); } int main() {int i;while(scanf("%d",&n)!=EOF && n){for(i=1; i<=n; i++) scanf("%d",&a[i]);LOS();}return 0; }
转载于:https://www.cnblogs.com/scau20110726/archive/2012/10/26/2740719.html
scau实验题 8596 Longest Ordered Subsequence相关推荐
- 【POJ - 2533】Longest Ordered Subsequence(四种方法解决最长上升子序列 含二分优化版本)
题干: Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 41944 Accepted: 18453 Description ...
- Longest Ordered Subsequence 最长上升子序列+DP
A numeric sequence of ai is ordered if a1 < a2 < - < aN. Let the subsequence of the given n ...
- OpenJudge 2757 最长上升子序列 / Poj 2533 Longest Ordered Subsequence
1.链接地址: http://poj.org/problem?id=2533 http://bailian.openjudge.cn/practice/2757 2.题目: 总Time Limit: ...
- POJ-2533 Longest Ordered Subsequence
http://poj.org/problem?id=2533 该题是最裸的LIS题,这里有两种方法. 代码如下: #include <cstdio>#include <cstring ...
- 2017四川省赛E题( Longest Increasing Subsequence)
提交地址: https://www.icpc-camp.org/contests/4rgOTH2MbOau7Z 题意: 给出一个整数数组,F[i]定义为以i结尾的最长上升子序列,然后问以此删除掉第i个 ...
- HOJ 10027 Longest Ordered Subsequence Extention
初做此题时,的确注意到了数据范围,如果用动态规划做的话,两层搜索,时间复杂度为o(n^2),n达50000,铁定超时.但是我还是用dp交了一次,果然tle了.想在10001的基础上优化一下,但是苦于没 ...
- POJ 2533 Longest Ordered Subsequence
大致题意:求最长升子序列. f[i]:前i+1个元素中包括第i+1个的最长升子序列. // Time 32ms; Memory 224K #include<iostream> using ...
- POJ 2533 Longest Ordered Subsequence 动态规划
题意 本题求从1 到 n的最长上升子序列的长度 分析 最优化问题 考虑dp 我们求1-n最长上升子序列长度 假设记录在dp[n]中 假设我们已经知道了1-n-1的以第n-1为最后一个元素的最长上升序列 ...
- Longest Increasing Subsequence(LIS入门dp)
http://poj.org/problem?id=2533 Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K D ...
最新文章
- 【NAACL2021】Graph4NLP:图深度学习自然语言处理(附ppt)
- LAMP(httpd 2.4.1 + mysql-5.5.19 + php-5.3.10)编译安装
- Dijkstra算法.
- php中public放什么,PHP中常用关键字public, private, protected, static...
- 多线程之多生产多消费者
- Git学习总结(18)——让你成为Git和GitHub大神的20个技巧
- 回顾2020年那些“领域第一本”,每一本都强烈推荐!
- 机器学习(11): FP-growth算法 小结及实验
- 汉诺塔递归算法python详细解析图_汉诺塔递归算法分析过程
- 利用 安装oracle依赖包,使用yum快速安装oracle11g依赖包
- TCP MIN_RTO 辩证考
- Android Studio Build failed(出现 gradle sync failed 问题)解决方法
- 微信企业号用户验证php,企业号OAuth2.0验证企业用户接口
- PHP汉字转拼音第三方类库
- 如何成为一名网络安全工程师
- Windows中编译wireshark3.0以上版本指南
- Linux系统下工具软件的安装
- 备战APEC 智利公布2019峰会主要议题
- 钉钉在线表格下载后子表内容空白无数据
- 算法——股票买卖问题
热门文章
- Android wechat 分享
- PHP函数stream_context_create()模拟POST/GET
- Rstudio连接spark失败
- c语言调式有错误,vsc调式c语言
- linux怎么运行exam,《 rh124-exam》linux练习
- select weui 动态加载数据_weui中的picker使用js进行动态绑定数据问题
- C#中String与 StringBuilder 的区别
- mysql 当前时间减指定时间_MySQL实现当前数据表的所有时间都增加或减少指定的时间间隔(推荐)...
- gen_cam_par_area_scan_division和gen_cam_par_area_scan_polynomial区别
- calibrate_cameras算子说明