HDU 1277 Nested Dolls
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1677
题意:
玩俄罗斯套娃,问最后至少还剩几个。
题解:
这题可以和拦截导弹做对比,因为这里是二维的,按w递减h递增的方式来保证在保存的序列中按h升序来排的,从而为二分查找打下基础。
否则,如果按h降序排,保存的序列就会无序,二分结果自然不正确了。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std; const int maxn = + ; struct Node {
int w, h;
bool operator < (const Node& tmp) const {
return w < tmp.w&&h < tmp.h;
}
}arr[maxn], dp[maxn]; bool cmp(Node& n1, Node& n2) {
return n1.w > n2.w || (n1.w == n2.w) && (n1.h<n2.h);
} int n; int main() {
int tc;
scanf("%d", &tc);
while (tc--) {
scanf("%d", &n);
for (int i = ; i < n; i++) {
scanf("%d%d", &arr[i].w,&arr[i].h);
}
sort(arr, arr + n, cmp);
int ans = ;
dp[++ans] = arr[];
for (int i = ; i < n; i++) {
//dp按w降序,h升序排的!!!为了维护h是升序排的,必须保证输入中w相等时h按升序排而不是降序
int low = , hig = ans;
while (low + < hig) {
int mid = low + (hig - low) / ;
if (arr[i] < dp[mid]) hig = mid;
else low = mid;
}
if (arr[i] < dp[hig]) {
dp[hig] = arr[i];
}
else {
dp[++ans] = arr[i];
}
}
printf("%d\n", ans);
}
return ;
}
HDU 1277 Nested Dolls的更多相关文章
- hdu 1677 Nested Dolls【贪心解嵌套娃娃问题】
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1677 http://acm.hust.edu.cn/vjudge/contest/view.action ...
- HDU 1677 Nested Dolls
过了之后感觉曾经真的做过这样的类型的题. 之前一直非常疑惑二级排序的优先级问题,如今发现二级排序真的没有绝对的优先级. 对于此题,若按W排序,则有1到i件物品的W均小于等于第i+1件物品(设为A)的W ...
- hdu----(1677)Nested Dolls(DP/LIS(二维))
Nested Dolls Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- Nested Dolls 贪心 + dp
G: Nested Dolls Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 99 Solved: 19 Descript ...
- hdu 1277 全文检索
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1277 全文检索 Description 我们大家经常用google检索信息,但是检索信息的程序是很困难 ...
- hdu 1277 AC自动机入门(指针版和数组版)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1277 推荐一篇博客(看思路就可以,实现用的是java): https://www.cnblogs.co ...
- hdu 1277 全文检索 (直接映射查找 || 自动机)
Problem - 1277 无聊做水题的时候发现的一道题目.这道题第一反应可以用自动机来解决.当然,条件是各种限制,从而导致可以用直接映射标记的方法来搜索.具体的做法就像RK算法一样,将字符串has ...
- SPOJ 3943 - Nested Dolls 最长不下降子序列LIS(二分写法)
现在n(<=20000)个俄罗斯套娃,每个都有宽度wi和高度hi(均小于10000),要求w1<w2并且h1<h2的时候才可以合并,问最少能剩几个. [LIS]乍一看跟[这题]类似, ...
- HDU 1277全文检索(字典树)
全文检索 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
随机推荐
- Easy-UI中datebox的默认显示当前日期的最简单的两种方法
在中有一个Today按钮就是实现显示当前日期,所以我们在src/jquery.datebox.js文件中可以找到currentText:'Today'.所以我们可以使用'currentText'和'T ...
- ElasticSearch优化系列四:ES的heap是如何被瓜分掉的
以下分别解读几个我知道的内存消耗大户: Segment Memory Segment不是file吗?segment memory又是什么?前面提到过,一个segment是一个完备的lucene倒排索引 ...
- Mongo DB命令简介
引言 最近在学习MongoDB 总结了一些命令及常用的东西做整理 常用目录文件介绍 mongod 数据库部署命令 mongo 连接mongodb数据库而使用的命令 mongoimport 导入 ...
- Linux内核程序的编译:模块化编译
内核在编译的时候,可以支持单独模块化编译,只需要一个小小的Makefile即可搞定. 步骤如下: 1.在任意位置创建目录 vim Makefile 2.在Makefile中添加如下代码(我的kerne ...
- Framwork框架-网络客户端的使用
1.引入头文件 #include "Comm.h" 2.派生自框架基类CProtocolCpMgr class NetManager : public CProtocolCpMgr ...
- C#基础 const和readonly关键字
静态常量 所谓静态常量就是在编译期间会对变量进行解析,再将常量的值替换成初始化的值.动态常量 所谓动态常量就是编译期间会将变量标记只读常量,而不用常量的值代替,这样在声明时可以不初始化,可以延迟到构造 ...
- shiro实战整合
引入依赖(包括缓存等): <!-- SECURITY begin --> <dependency> <groupId>org.apache.shiro</gr ...
- 20155213 实验三《敏捷开发与XP实践》实验报告
20155213 实验三<敏捷开发与XP实践>实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)> ...
- 人脸识别引擎SeetaFaceEngine中Alignment模块使用的测试代码
人脸识别引擎SeetaFaceEngine中Alignment模块用于检测人脸关键点,包括5个点,两个眼的中心.鼻尖.两个嘴角,以下是测试代码: int test_alignment() { std: ...
- Yii2.0 高级模版编写使用自定义组件(component)
翻译自:http://www.yiiframework.com/wiki/760/yii-2-0-write-use-a-custom-component-in-yii2-0-advanced-tem ...