其实解释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相关推荐

  1. 【POJ - 2533】Longest Ordered Subsequence(四种方法解决最长上升子序列 含二分优化版本)

    题干: Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 41944   Accepted: 18453 Description ...

  2. Longest Ordered Subsequence 最长上升子序列+DP

    A numeric sequence of ai is ordered if a1 < a2 < - < aN. Let the subsequence of the given n ...

  3. OpenJudge 2757 最长上升子序列 / Poj 2533 Longest Ordered Subsequence

    1.链接地址: http://poj.org/problem?id=2533 http://bailian.openjudge.cn/practice/2757 2.题目: 总Time Limit: ...

  4. POJ-2533 Longest Ordered Subsequence

    http://poj.org/problem?id=2533 该题是最裸的LIS题,这里有两种方法. 代码如下: #include <cstdio>#include <cstring ...

  5. 2017四川省赛E题( Longest Increasing Subsequence)

    提交地址: https://www.icpc-camp.org/contests/4rgOTH2MbOau7Z 题意: 给出一个整数数组,F[i]定义为以i结尾的最长上升子序列,然后问以此删除掉第i个 ...

  6. HOJ 10027 Longest Ordered Subsequence Extention

    初做此题时,的确注意到了数据范围,如果用动态规划做的话,两层搜索,时间复杂度为o(n^2),n达50000,铁定超时.但是我还是用dp交了一次,果然tle了.想在10001的基础上优化一下,但是苦于没 ...

  7. POJ 2533 Longest Ordered Subsequence

    大致题意:求最长升子序列. f[i]:前i+1个元素中包括第i+1个的最长升子序列. // Time 32ms; Memory 224K #include<iostream> using ...

  8. POJ 2533 Longest Ordered Subsequence 动态规划

    题意 本题求从1 到 n的最长上升子序列的长度 分析 最优化问题 考虑dp 我们求1-n最长上升子序列长度 假设记录在dp[n]中 假设我们已经知道了1-n-1的以第n-1为最后一个元素的最长上升序列 ...

  9. Longest Increasing Subsequence(LIS入门dp)

    http://poj.org/problem?id=2533 Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K D ...

最新文章

  1. 【NAACL2021】Graph4NLP:图深度学习自然语言处理(附ppt)
  2. LAMP(httpd 2.4.1 + mysql-5.5.19 + php-5.3.10)编译安装
  3. Dijkstra算法.
  4. php中public放什么,PHP中常用关键字public, private, protected, static...
  5. 多线程之多生产多消费者
  6. Git学习总结(18)——让你成为Git和GitHub大神的20个技巧
  7. 回顾2020年那些“领域第一本”,每一本都强烈推荐!
  8. 机器学习(11): FP-growth算法 小结及实验
  9. 汉诺塔递归算法python详细解析图_汉诺塔递归算法分析过程
  10. 利用 安装oracle依赖包,使用yum快速安装oracle11g依赖包
  11. TCP MIN_RTO 辩证考
  12. Android Studio Build failed(出现 gradle sync failed 问题)解决方法
  13. 微信企业号用户验证php,企业号OAuth2.0验证企业用户接口
  14. PHP汉字转拼音第三方类库
  15. 如何成为一名网络安全工程师
  16. Windows中编译wireshark3.0以上版本指南
  17. Linux系统下工具软件的安装
  18. 备战APEC 智利公布2019峰会主要议题
  19. 钉钉在线表格下载后子表内容空白无数据
  20. 算法——股票买卖问题

热门文章

  1. Android wechat 分享
  2. PHP函数stream_context_create()模拟POST/GET
  3. Rstudio连接spark失败
  4. c语言调式有错误,vsc调式c语言
  5. linux怎么运行exam,《 rh124-exam》linux练习
  6. select weui 动态加载数据_weui中的picker使用js进行动态绑定数据问题
  7. C#中String与 StringBuilder 的区别
  8. mysql 当前时间减指定时间_MySQL实现当前数据表的所有时间都增加或减少指定的时间间隔(推荐)...
  9. gen_cam_par_area_scan_division和gen_cam_par_area_scan_polynomial区别
  10. calibrate_cameras算子说明