CodeForces 22D Segments 排序水题
来源:互联网 发布:广州恒大淘宝队 编辑:程序博客网 时间:2024/05/16 06:34
题目链接:点击打开链接
右端点升序,取右端点
暴力删边
#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <iostream>#include <map>#include <set>#include <math.h>using namespace std;#define inf 10000000#define ll int#define N 2105#define L(x) (x<<1)#define R(x) (x<<1|1)inline ll Mid(ll a,ll b){return (a+b)>>1;}ll n;struct node{ll x,y;}a[N];bool cmp(node a,node b){if(a.y==b.y)return a.x<b.x;return a.y<b.y;}vector<ll>ans;ll h[N];int main(){ll i, j;while(~scanf("%d",&n)){for(i=1;i<=n;i++){cin>>a[i].x>>a[i].y;if(a[i].x>a[i].y)swap(a[i].x,a[i].y);}memset(h, 0, sizeof h);sort(a+1,a+n+1,cmp);ans.clear();for(i = 1; i <=n;i++)if(!h[i]){ans.push_back(a[i].y);for(j=i;j<=n;j++){if(a[j].x<=a[i].y && a[i].y<=a[j].y)h[j] = 1;}}cout<<ans.size()<<endl;for(i=0;i<ans.size();i++)printf("%d%c",ans[i],i==((ll)ans.size()-1)?'\n':' ');}return 0;}/*340 -8352 -80-21 -4*//*struct node{ll l, r, id;ll maxx,val,lmaxx;}tree[N];void push_down(ll id){if(tree[id].l==tree[id].r)return ;if(tree[id].val){tree[L(id)].val += tree[id].val;tree[R(id)].val += tree[id].val;tree[L(id)].lmaxx += tree[id].val;tree[L(id)].maxx += tree[id].val;tree[R(id)].lmaxx += tree[id].val;tree[R(id)].maxx += tree[id].val;tree[id].val = 0;}}void build(ll l, ll r, ll id){tree[id].l = l, tree[id].r = r;tree[id].maxx = tree[id].val = 0;tree[id].lmaxx = 0;if(l==r)return ;ll mid = Mid(l,r);build(l,mid,L(id)); build(mid+1,r,R(id));}void updata(ll l, ll r, ll val, ll id){push_down(id);if(l == tree[id].l && tree[id].r == r){tree[id].val += val;tree[id].maxx += val;tree[id].lmaxx += val;return;}ll mid = Mid(tree[id].l, tree[id].r);if(mid<l)updata(l,r,val,R(id));else if(r<=mid)updata(l,r,val,L(id));else {updata(l,mid,val,L(id));updata(mid+1,r,val,R(id));}tree[id].maxx = max(tree[L(id)].maxx, tree[R(id)].maxx);tree[id].lmaxx = tree[L(id)].lmaxx;}struct hehe{ll val, x;hehe(ll a=0,ll b=0):val(a),x(b){}bool operator<(const hehe&a)const{if(a.val==val)return a.x<x;return a.val>val;}};hehe query(ll l, ll r, ll id){push_down(id);if(l == tree[id].l && tree[id].r == r && tree[id].lmaxx==tree[id].maxx)return hehe(tree[id].maxx, tree[id].l);ll mid = Mid(tree[id].l, tree[id].r);if(mid<l)return query(l,r,R(id));else if(r<=mid)return query(l,r,L(id));else return max(query(l,mid,L(id)),query(mid+1,r,R(id)));}set<ll>myset;set<ll>::iterator p;map<ll,ll>mp;ll pos[N]; vector<ll>ans;int use[N];int main(){ll i, j, u, v;while(cin>>n){myset.clear();mp.clear();ans.clear();for(i=1;i<=n;i++){cin>>x[i]>>y[i];if(x[i]>y[i])swap(x[i],y[i]);myset.insert(x[i]);myset.insert(y[i]);use[i] = true;}ll siz = 1;for(p=myset.begin(); p!=myset.end(); p++, siz++) {pos[siz] = *p;mp.insert(pair<ll,ll>(*p,siz));}for(i=1;i<=n;i++) {x[i] = mp.find(x[i])->second;y[i] = mp.find(y[i])->second;}build(1,siz-1,1);for(i=1;i<=n;i++)updata(x[i],y[i],1,1);while(tree[1].maxx){hehe now = query(1,siz-1,1);ans.push_back(pos[now.x]);for(i=1;i<=n;i++)if(x[i]<=now.x&&now.x<=y[i] && use[i])updata(x[i],y[i],-1,1), use[i] = false;}cout<<ans.size()<<endl;for(i=0;i<ans.size();i++)printf("%d%c",ans[i],i==((ll)ans.size()-1)?'\n':' ');}return 0;}/**/
0 0
- CodeForces 22D Segments 排序水题
- codeforces D. The Union of k-Segments 排序
- codeforces 652D Nested Segments
- CodeForces 612 D. The Union of k-Segments(水~)
- Codeforces Beta Round #22 (Div. 2 Only)-D. Segments
- CodeForces 612D The Union of k-Segments(排序+区间计数、扫描线)
- codeforces#337 D. Vika and Segments
- Educational Codeforces Round 10 D. Nested Segments
- Educational Codeforces Round 10 D Nested Segments
- Educational Codeforces Round 10 D.Nested Segments
- CodeForces 652D Nested Segments 树状数组
- Codeforces 193D Two Segments (线段树)
- Educational Codeforces Round 10-D. Nested Segments
- 【20.51%】【codeforces 610D】Vika and Segments
- CodeForces D. Nested Segments【逆序对类型】
- 【Codeforces Round #122 (Div. 1)】Codeforces 193D Two Segments
- Codeforces 193 D. Two Segments(线段树)
- Codeforces Round #337 (Div. 2) D.Vika and Segments
- PHP判断QQ是否在线代码。
- 超强PCB布线设计经验谈附原理图
- Maven本地库
- CentOS 安装 repo
- CodeForces 22C System Administrator 小水怡情 图论+构造
- CodeForces 22D Segments 排序水题
- mongoDB分页的两种方法
- git-am用法
- 专心掌控自我
- Qt浅谈之十六:TCP和UDP(之一)
- C++枚举类型-enum
- Nginx学习——http配置项解析编程
- cmpy指令用mpy32替代
- 关于连接与事务的处理