声明:

正如标题所说,只是求长度,应对题目要求,请自行判断,用错代码概不负责!

本蒟蒻的代码可能有错,有错误还请各位dalao请指出

运用了upper_bound()和lower_bound()函数 upper_bound()查找第一个大于目标的数的地址

lower_bound()查找第一个大于等于目标的数的地址

请注意,注释上面的才是这个注释所对应的代码。

 1 #include<bits/stdc++.h>
2 using namespace std;
3 int y[100];
4 int zs[100],zbx[100],zx[100],zbs[100];
5 //zs 最长上升子序列 zbx最长不下降子序列 zx 最长下降子序列 zbs 最长不上升子序列
6 bool cmp(int a,int b)
7 {
8 return a>b;
9 }//不知道能不能用,尽管测试过没问题,但感觉还是不严谨,不推荐使用
10 int main()
11 {
12 int n;
13 scanf("%d",&n);
14 for(int i=1;i<=n;++i)
15 {
16 scanf("%d",&y[i]);
17 }
18 zs[1]=zbx[1]=zx[1]=zbs[1]=y[1];
19 int cnt=1;
20 for(int i=2;i<=n;++i)
21 {
22 if(y[i]>zs[cnt])
23 {
24 zs[++cnt]=y[i];
25 }
26 else
27 {
28 int p=lower_bound(zs+1,zs+cnt+1,y[i])-zs;
29 zs[p]=y[i];
30 }
31 }
32 printf("%d\n",cnt);//最长上升子序列长度
33 cnt=1;
34 for(int i=2;i<=n;++i)
35 {
36 if(y[i]>=zbx[cnt])
37 {
38 zbx[++cnt]=y[i];
39 }
40 else
41 {
42 int p=upper_bound(zbx+1,zbx+cnt+1,y[i])-zbx;
43 zbx[p]=y[i];
44 }
45 }
46 printf("%d\n",cnt);//最长不下降子序列长度
47 cnt=1;
48 for(int i=2;i<=n;++i)
49 {
50 if(y[i]<zx[cnt])
51 {
52 zx[++cnt]=y[i];
53 }
54 else
55 {
56 int p=lower_bound(zx+1,zx+cnt+1,y[i],greater<int>() )-zx;
57 //int p=lower_bound(zx+1,zx+cnt+1,y[i],cmp )-zx;
58 zx[p]=y[i];
59 }
60 }
61 printf("%d\n",cnt);//最长下降子序列长度
62 cnt=1;
63 for(int i=2;i<=n;++i)
64 {
65 if(y[i]<=zbs[cnt])
66 {
67 zbs[++cnt]=y[i];
68 }
69 else
70 {
71 int p=upper_bound(zbs+1,zbs+cnt+1,y[i],greater<int>() )-zbs;
72 //int p=upper_bound(zbs+1,zbs+cnt+1,y[i],cmp )-zbs;
73 zbs[p]=y[i];
74 }
75 }
76 printf("%d\n",cnt);//最长不上升子序列长度
77 return 0;
78 }

最新文章

  1. [ios]利用alertView 插入数据都数据库。笔记
  2. POST方式提交表单时,后台接受实体如果继承了父类,将无法映射表单对应数据
  3. usb mass storage
  4. 工作流学习——Activiti流程定义管理三步曲 (zhuan)
  5. Python编程感悟
  6. ASP.NET实现年月日三级联动(局部刷新)
  7. php获取url字符串截取路径的文件名和扩展名
  8. 河南多校联合训练 南阳理工 1261 音痴又音痴的LT
  9. input file 上传图片问题
  10. nyoj137 取石子(三) 楼教主男人八题之一
  11. [题解]玩具谜题(toy)
  12. HDU 4547 CD操作
  13. 用canal同步binlog到kafka,spark streaming消费kafka topic乱码问题
  14. 【vue】vue +element 实现批量删除
  15. react中如何使用动画效果
  16. 浅谈JS中的原型对象和原型链
  17. Ajax之跨域访问与JSONP
  18. linux中按照指定内容查找文件
  19. Hibernate(二)
  20. create-react-app 使用详解

热门文章

  1. Spring Framework 远程命令执行漏洞(CVE-2022-22965)
  2. 141_Power Query之获取钉钉审批流自动刷新Power BI报告
  3. CefSharp 白屏问题
  4. 【摸鱼神器】一次搞定 vue3的 路由 + 菜单 + tabs
  5. 分享一个网上搜不到的「Redis」实现「聊天回合制」的方案
  6. 某CMS后台通杀getshell
  7. RocketMQ消息的顺序与重复
  8. zabbix-5.0自动发现
  9. 初学python常用,python模块安装和卸载的几种方法
  10. Linux for CentOS 下的 nginx 绿色安装-超省心安装