POJ 1065 Wooden Sticks 【贪心】
来源:互联网 发布:数据库死锁解决 编辑:程序博客网 时间:2024/05/16 06:14
题目链接
题意
给n个整数对,定义数对间的大于关系是
分析
LIS的变形,但考虑到原来给的这些数对并没有顺序,可以随便选择,因此没有必要用DP求LIS。可以倒序排序(先按第一个数排序,再按第二个数排序)后,贪心,即从左到右遍历,选择当前还没有被选择的数对中的最小的一个,则它一定是某个序列的最后一个元素,然后从它开始向右遍历,只要是比它大的数对都标记访问,并且下一个以这个数对为比较依据,这样遍历结束后就选出了一个非递减序列。
AC代码
//POJ 1065 Wooden Sticks//AC 2016-8-8 12:00:46//Greedy#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#include <cctype>#include <cstdlib>#include <cstring>#include <vector>#include <set>#include <string>#include <map>#include <queue>#include <deque>#include <list>#include <sstream>#include <stack>using namespace std;#define cls(x) memset(x,0,sizeof x)#define inf(x) memset(x,0x3f,sizeof x)#define neg(x) memset(x,-1,sizeof x)#define ninf(x) memset(x,0xc0,sizeof x)#define st0(x) memset(x,false,sizeof x)#define st1(x) memset(x,true,sizeof x)#define INF 0x3f3f3f3f#define lowbit(x) x&(-x)#define input(x) scanf("%d",&(x))#define bug cout<<"here"<<endl;//#define debugpair<int,int> sticks[5050];int visit[5050];inline bool smaller(int a,int b){ return (sticks[a].first<=sticks[b].first)&&(sticks[a].second<=sticks[b].second);}int main(){ #ifdef debug freopen("E:\\Documents\\code\\input.txt","r",stdin); freopen("E:\\Documents\\code\\output.txt","w",stdout); #endif int T,n; input(T); while(T--) { input(n); for(int i=0;i<n;++i) { input(sticks[i].first); input(sticks[i].second); } sort(sticks,sticks+n); int res=0; cls(visit); for(int i=0;i<n;++i) { if(visit[i]) continue; visit[i]=1; int cur=i; for(int j=i+1;j<n;++j) { if(smaller(cur,j)&&!visit[j]) { cur=j; visit[cur]=1; } } ++res; } printf("%d\n",res); } return 0;}
0 0
- POJ 1065 Wooden Sticks 贪心
- POJ | 1065 Wooden Sticks | 贪心
- POJ 1065 Wooden Sticks (贪心)
- POJ 1065 Wooden Sticks 贪心
- poj 1065 Wooden Sticks【贪心】
- POJ 1065 Wooden Sticks 【贪心】
- POJ 1065-Wooden Sticks 贪心问题
- poj 1065Wooden Sticks (简单的贪心)
- poj 1065 Wooden Sticks(贪心算法)
- poj 1065 Wooden Sticks (贪心)
- POJ 1065-Wooden Sticks(贪心+暴力)
- Poj 1065 Wooden Sticks【贪心+LIS?】
- poj 1065 Wooden Sticks贪心水过
- Poj 1065 Wooden Sticks【贪心+LIS?】
- POJ 1065 && HDU 1051 Wooden Sticks 贪心
- POJ 1065 Wooden Sticks
- poj 1065 Wooden Sticks
- poj 1065 Wooden Sticks
- 自然语言处理︱简述四大类文本分析中的“词向量”(文本词特征提取)
- HDU 2199(牛顿迭代法)/(二分)(高次方程求解)
- 安装sublime text 3
- Hyper-V虚拟化研究(一)
- Android MVP模式的坑
- POJ 1065 Wooden Sticks 【贪心】
- Dynamics CRM 2016 Excel Template Feature
- http协议学习系列(http代理)
- Unity开发基础——基本数据类型学习笔记
- mongo副本集:只开启主节点和仲裁无法选主问题分析
- EventBus源码阅读(5)-SubscriberInfo
- 使用负载均衡之后的Session处理思路
- 用jsp调用exe文件
- 虚拟机上不能使用CUDA