HDU 1277 Nested Dolls
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1677
题意:
玩俄罗斯套娃,问最后至少还剩几个。
题解:
这题可以和拦截导弹做对比,因为这里是二维的,按w递减h递增的方式来保证在保存的序列中按h升序来排的,从而为二分查找打下基础。
否则,如果按h降序排,保存的序列就会无序,二分结果自然不正确了。
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 using namespace std; 5 6 const int maxn = 20000 + 10; 7 8 struct Node { 9 int w, h; 10 bool operator < (const Node& tmp) const { 11 return w < tmp.w&&h < tmp.h; 12 } 13 }arr[maxn], dp[maxn]; 14 15 bool cmp(Node& n1, Node& n2) { 16 return n1.w > n2.w || (n1.w == n2.w) && (n1.h<n2.h); 17 } 18 19 int n; 20 21 int main() { 22 int tc; 23 scanf("%d", &tc); 24 while (tc--) { 25 scanf("%d", &n); 26 for (int i = 0; i < n; i++) { 27 scanf("%d%d", &arr[i].w,&arr[i].h); 28 } 29 sort(arr, arr + n, cmp); 30 int ans = 0; 31 dp[++ans] = arr[0]; 32 for (int i = 1; i < n; i++) { 33 //dp按w降序,h升序排的!!!为了维护h是升序排的,必须保证输入中w相等时h按升序排而不是降序 34 int low = 0, hig = ans; 35 while (low + 1 < hig) { 36 int mid = low + (hig - low) / 2; 37 if (arr[i] < dp[mid]) hig = mid; 38 else low = mid; 39 } 40 if (arr[i] < dp[hig]) { 41 dp[hig] = arr[i]; 42 } 43 else { 44 dp[++ans] = arr[i]; 45 } 46 } 47 printf("%d\n", ans); 48 } 49 return 0; 50 }
转载于:https://www.cnblogs.com/fenice/p/5463992.html
HDU 1277 Nested Dolls相关推荐
- hdu 1677 Nested Dolls 子串
题目: A - Nested Dolls Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64 ...
- HDU OJ 1677 Nested Dolls【二分,LIS】
原题连接:http://acm.hdu.edu.cn/showproblem.php?pid=1677 题意:每组测试数据给n个硬币,现在给你这n个硬币的长和高,若一硬币的长和高都小于另一个硬币,则这 ...
- hdu 4160 (Dolls)二分图的最小路径覆盖
关于二分图,让人很头疼啊!归结为一句话,就是看不出来题目是二分图的问题. 也许是对二分图不太熟悉吧!需要多练习! 题目大意:给出n个箱子,每个箱子的参数为长,宽,高:(a,b,c):当且仅当箱子s1, ...
- EOJ1765 Nested Dolls 最长上升子序列
本题我试过很多方法,最开始的思路是,一个娃娃可以套另一个娃娃,这种偏序关系可以建图.找出图中最长的路径,然后把那些点删掉,再找出最长的路径,删掉,直至图中没有点,删除的次数就是答案,可是这样会超时.第 ...
- HDU1677 Nested Dolls
/* 这是杭电1677那道题 这算一道动态规划题,说起动态规划,不得不说背包九讲真是大牛呀,每次看都会有些收获 这道题难点之一是将其转化为,求最长单调非递增子序列 记得刚开始看到这道题的时候,没头没脑 ...
- 杭电OJ分类题目(2)
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(2) HDU Water~~~ HDU 100 ...
- Competitive Programming 3题解
题目一览: Competitive Programming 3: The New Lower Bound of Programming Contests(1) Competitive Programm ...
- 杭电OJ分类题目(1)
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(1) HDU Introduction HDU ...
- python中def的用法 return_Python函数基础--def及return语句地操作
1·def是可执行的代码 Python的函数是有一个新的语句编写的,即def.不像C这样的编译语言,def 实际上是一个可执行的语句--函数并不存在,直到Python运行了def后才存在.在典型的操作 ...
最新文章
- Android笔记——四大组件详解与总结
- macbook 分屏软件
- Nacos源码NacosServiceRegistry
- OpenCV+python调用本地摄像头并录制视频
- numpy不用科学记数发 python_Python科学计算库Numpy常用的函数使用
- 继Science发文后,Nature也发文评论曹雪涛“误用图片”调查结果
- 开源 java CMS - FreeCMS2.6 站点设置
- [MySQL Reference Manual] 24 MySQL sys框架
- Windows开启SNMP服务----Win7
- eclipse html tab宽度,Eclipse 设置Tab键为4个空格
- informatica 常见问题及解决方案
- JSP+JavaBean+Servlet+Oracle新增功能中对Date类型的字段的处理
- 小米路由器4a开发版固件_小米路由器 4A 刷入lean 的 openwrt/lede
- GMP法规附录《计算机化系统》那些事儿
- linux su文件删除了,UBUNTU linux 批量删除文件
- 数组去重10种方法(干货)!!!
- CSS基础-04-浏览器调试
- Cesium 视锥体绘制,并动态更新朝向
- 公共基础知识和计算机相关知识了解农业常识,公共基础知识:农业为本
- 火星电竞|电竞数据分发系统架构演进
热门文章
- 深度学习笔记(四)(1)卷积神经网络
- HashSet要重写equals方法和hashCode方法
- 知道魔术的秘密很了不起吗?
- 2023AIGC市场研究报告:ChatGPT的技术演进、变革风向与AIGC投资机会分析(附下载链接)...
- 湖北武汉机械员培训机械设备安全管理的问题建筑七大员培训
- Win11 搜索栏一直在加载的解决办法
- Docker 上 gitlab私有化部署及邮箱配置
- mysql数据库插入数据语法_数据库请求:插入数据(INSERT)
- Java加密解密算法-SHA加密
- python下列说法正确的是-以下关于 Python版本的说法中,哪个是正确的?