CodeForces 97B Superset (分治)
来源:互联网 发布:企政oa软件 编辑:程序博客网 时间:2024/06/04 17:56
题意:
给出n对坐标,可以在其中添加一些点,使得平面上任意两点满足以下三个条件的其中一个
1、两个点在同一水平面上
2、两个点在同一竖线上
3、这两个点所围成的矩形里面有点存在
最后输出满足条件的点的总数,并输出这些点
先排序,再解题
#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <set>#include <algorithm>using namespace std;struct node{int x,y;bool operator <(const node b)const{if(x==b.x) return y<b.y;else return x<b.x;}//写了这个,sort里面不用写cmp了,正常写 };node a[10005];set<node>s;set<node>::iterator it;void dfs(int l,int h){if(l==h) return;int mid = (l+h)/2;for(int i=l;i<=h;i++){node ret;ret.x = a[mid].x;ret.y = a[i].y;s.insert(ret);}dfs(l,mid);dfs(mid+1,h);}int main(){int n;cin>>n;s.clear();for(int i=0;i<n;i++){cin>>a[i].x>>a[i].y;s.insert(a[i]);}sort(a,a+n);dfs(0,n-1);int t = s.size();cout<<t<<endl;for(it = s.begin();it!=s.end();it++){cout<<it->x<<" "<<it->y<<endl;}return 0;}
0 0
- CodeForces 97B Superset (分治)
- Codeforces 97B Superset 平面分治
- CodeForces 97B Superset
- CodeForces 97B Superset
- Superset CodeForces
- Codeforces 768B Code for 1 【分治】
- codeforces 448C Painting Fence(分治)
- codeforces 632E(FFT+分治)
- CodeForces 429B()
- Superset安装教程(Python2.7)
- superset安装卡壳(不动)问题
- Codeforces 526F 分治
- codeforces 448C 分治
- CodeForces 329B(bfs)
- Codeforces 201(DIV2)B
- CodeForceS#276-B(贪心)
- CodeForces 527B(字符串)
- CodeForces 329B(BFS)
- UPNP库——miniupnpc的主要函数介绍
- CSDN的第一天
- 深入分析 虚函数 纯虚函数 的作用及区别
- Linux常用命令大全
- Android学习 - Android权限机制总结与常见权限不足问题分析
- CodeForces 97B Superset (分治)
- lnmp环境安装
- Python——列表,元组
- android Intent机制详解
- 面试过程中如何介绍自己?最大优缺点?加班?薪资?
- tomcat服务器解析(二) --- Endpoint
- 如何限制一个类只在堆上或者栈上分配
- mysql的一些使用总结
- Sonarqube 在mac下的安装