poj 3168 Barn Expansion 排序
来源:互联网 发布:java当前时间加24小时 编辑:程序博客网 时间:2024/05/17 02:31
把每个横坐标边,纵坐标边分别排序,判断是否相邻即可。
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn=25e3+9;int n;bool use[maxn];struct{ int a,b,c,d;}data[maxn];struct A{ int key,down,up,id; bool operator <(const A & xx) const { if(key==xx.key) return down<xx.down; return key<xx.key; }}a[maxn<<1];int main(){// freopen("in.txt","r",stdin); while(scanf("%d",&n)!=EOF) { for(int i=1;i<=n;i++) { scanf("%d %d",&data[i].a,&data[i].b); scanf("%d %d",&data[i].c,&data[i].d); } memset(use,0,sizeof(use)); for(int i=1;i<=n;i++) { a[i*2-1].key=data[i].a; a[i*2-1].down=data[i].b; a[i*2-1].up=data[i].d; a[i*2].key=data[i].c; a[i*2].down=data[i].b; a[i*2].up=data[i].d; a[i*2].id=a[i*2-1].id=i; } sort(a+1,a+n+n+1); for(int i=1,j;i<=n+n;i=j) { for(j=i;j<=n+n;j++) if(a[i].key!=a[j].key) break; int up=a[i].up; for(int k=i+1;k<j;k++) { if(a[k].down<=up) use[a[k].id]=use[a[k-1].id]=1; up=max(up,a[k].up); } } for(int i=1;i<=n;i++) { a[i*2-1].key=data[i].b; a[i*2-1].down=data[i].a; a[i*2-1].up=data[i].c; a[i*2].key=data[i].d; a[i*2].down=data[i].a; a[i*2].up=data[i].c; a[i*2].id=a[i*2-1].id=i; } sort(a+1,a+n+n+1); for(int i=1,j;i<=n+n;i=j) { for(j=i;j<=n+n;j++) if(a[i].key!=a[j].key) break; int up=a[i].up; for(int k=i+1;k<j;k++) { if(a[k].down<=up) use[a[k].id]=use[a[k-1].id]=1; up=max(up,a[k].up); } } int ans=0; for(int i=1;i<=n;i++) ans+=!use[i]; cout<<ans<<endl; } return 0;}
- poj 3168 Barn Expansion 排序
- POJ 3168 Barn Expansion (几何+排序)
- poj 3168 Barn Expansion 几何yy
- POJ 3168 Barn Expansion(几何啊 )
- POJ 3168 Barn Expansion (平面扫描)
- POJ 3168 Barn Expansion (平面扫描)
- POJ 3168 Barn Expansion 已翻译
- poj 3168 Barn Expansion 平面扫描+线段相交问题
- Securing the Barn poj
- barn
- poj 3269 Building A New Barn
- POJ 3049 Securing the Barn 笔记
- Period of an Infinite Binary Expansion POJ
- poj 2462 Period of an Infinite Binary Expansion
- POJ 3358 Period of an Infinite Binary Expansion
- poj 3358——Period of an Infinite Binary Expansion
- POJ-3358-Period of an Infinite Binary Expansion 解题报告
- POJ-3358Period of an Infinite Binary Expansion
- 如何生成不重复的随机数或者随机字符序列
- 通过 DOM您可访问 HTML 文档中的每个节点
- Leetcode: Remove Duplicates from Sorted Array II
- Repeater的抽象分页控件
- [数据结构]程杰《大话数据结构》链栈代码
- poj 3168 Barn Expansion 排序
- 思想诗
- Factoring Large Numbers UVA10392
- C++库研究笔记—— 对function类定义的修正
- 工程是不能靠技术生
- OCP-1Z0-052-V8.02-35题
- 黑马程序员_java基础加强
- 利用多线程加速程序的小程序
- 中日律考时间表