标签:output dev different cst state ret strong 利用 else
#include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> using namespace std; #pragma comment(linker, "/STACK:102400000,102400000") #define ls i<<1 #define rs ls | 1 #define mid ((ll+rr)>>1) #define pii pair<int,int> #define MP make_pair typedef long long LL; const long long INF = 1e18+1LL; const double Pi = acos(-1.0); const int N = 5e5+10, M = 2e5+20, mod = 1e9+7, inf = 2e9; int n; int tag[N*4],mx[N*4]; void push_up(int i) { mx[i] = max(mx[ls],mx[rs]); } void push_down(int i,int ll,int rr) { if(tag[i] != 0 && ll != rr) { tag[ls] += tag[i]; tag[rs] += tag[i]; mx[ls] += tag[i]; mx[rs] += tag[i]; tag[i] = 0; } } void update(int i,int ll,int rr,int l,int r,int v) { push_down(i,ll,rr); if(l == ll && r == rr) { tag[i] += v; mx[i] += v; return ; } if(r <= mid) update(ls,ll,mid,l,r,v); else if(l > mid) update(rs,mid+1,rr,l,r,v); else { update(ls,ll,mid,l,mid,v); update(rs,mid+1,rr,mid+1,r,v); } push_up(i); } int query(int i,int ll,int rr,int x) { push_down(i,ll,rr); if(ll == rr) return ll; if(mx[ls] == x) return query(ls,ll,mid,x); else return query(rs,mid+1,rr,x); push_up(i); } struct ss{ int l,r,h,in; ss(int l = 0, int r = 0, int h = 0,int in = 0) : l(l), r(r), h(h),in(in) {} bool operator < (const ss & b) const { return h < b.h || h == b.h && in > b.in; } }p[N],P[N]; int main() { scanf("%d",&n); for(int i = 1; i <= n; ++i) { int l,v,r; scanf("%d%d%d",&l,&v,&r); p[i] = ss(l,v,v,1); p[i+n] = ss(l,v,r,-1); P[i] = ss(l,r,v,1); } int m = n << 1; sort(p+1,p+m+1); int ans = 0,x,y; for(int i = 1; i <= m; ++i) { int l = p[i].l, r = p[i].r; update(1,1,300000,l,r,p[i].in); if(mx[1] > ans) { ans = mx[1]; x = query(1,1,300000,mx[1]); y = p[i].h; } } printf("%d\n",ans); for(int i = 1; i <= n; ++i) { if(P[i].l <= x && P[i].r >= y && P[i].h >= x && P[i].h <= y) printf("%d\n",i); } return 0; }
Codeforces Round #222 (Div. 1) D. Developing Game 线段树有效区间合并
标签:output dev different cst state ret strong 利用 else
原文地址:http://www.cnblogs.com/zxhl/p/6010676.html