博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 1631 Bridging signals
阅读量:5035 次
发布时间:2019-06-12

本文共 910 字,大约阅读时间需要 3 分钟。

题目大意:如何留下最多的桥使其不相交

这个题看起来很麻烦,读懂了之后其实是让你求最长上升子序列

用动态规划求解

dp[i]表示长度为i的上升子序列的第i个元素的最小值

 

1 #include 
2 #include
3 #include
4 using namespace std; 5 6 int dp[40002]; 7 int n; 8 9 int main(int argc, char const *argv[])10 {11 int t;12 freopen("input.txt","r",stdin);13 scanf("%d",&t);14 while(t--) {15 scanf("%d",&n);16 int cnt = 0;17 while(n--) {18 int tmp;19 scanf("%d",&tmp);20 if(cnt == 0 || tmp > dp[cnt]) {21 cnt++;22 dp[cnt] = tmp;23 }24 else {25 int p = lower_bound(dp, dp+cnt+1, tmp) - dp;26 dp[p] = tmp;27 }28 }29 printf("%d\n",cnt);30 } 31 return 0;32 }

另外,lower_bound()为二分搜索的库函数,返回不小于tmp的指针

转载于:https://www.cnblogs.com/jasonJie/p/5837148.html

你可能感兴趣的文章
redhat 7 源码安装 mysql5.5.49
查看>>
技术项目,问题
查看>>
Android官方技术文档翻译——ApplicationId 与 PackageName
查看>>
js随机数的取整
查看>>
Feign使用Hystrix无效原因及解决方法
查看>>
Sam做题记录
查看>>
软件工程APP进度更新
查看>>
hexo 搭建博客
查看>>
建造者模式(屌丝专用)
查看>>
Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
查看>>
C++的引用
查看>>
完整ASP.Net Excel导入
查看>>
循环队列的运用---求K阶斐波那契序列
查看>>
python itertools
查看>>
http://lorempixel.com/ 可以快速产生假图
查看>>
编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成...
查看>>
文件操作
查看>>
NYOJ-613//HDU-1176-免费馅饼,数字三角形的兄弟~~
查看>>
linux下设置固定IP的方法
查看>>
ubuntu 16.04 (软件应用)-输入法
查看>>