|
|
我用了一种完全不对的树规过了9个点...可怕
|
|
|
回复 @MayLava :
#include<iostream> #include<cstdlib> #include<cstdio> #include<algorithm> #define N 100010 #define lowbit ( (i) & (-i) ) #define LL long long using namespace std; struct point{ int x,y; void read(){scanf("%d%d",&x,&y);} }p[N]; struct seg{ int h1,h2,h3,flag; seg() {} seg(int x,int y,int z,int a):h1(x),h2(y),h3(z),flag(a) {} }s[N]; int tree[N],n,tot,sz,sub[N]; void Insert(int pos,int num){for(int i=pos;i<N;i+=lowbit)tree[i]+=num;} int Query(int pos){int sum(0);for(int i=sum;i;i-=lowbit)sum+=tree[i];return sum;} int find(int x){ return lower_bound(sub+1,sub+sz+1,x)-sub; } void link(int ff,int l,int r,int h){//0横线,//1竖线 if(!ff){ s[++tot]=seg(find(l),find(r),h,0); }else { int X=find(h); s[++tot]=seg(X,X,l,1); s[++tot]=seg(X,X,r,-1); } } bool comp(const point & a,const point & b){return a.x==b.x?a.y<b.y:a.x<b.x;} bool Comp(const point & a,const point & b){return a.y==b.y?a.x<b.x:a.y<b.y;} bool COMP(const seg & a,const seg & b){ if(a.h3!=b.h3)return a.h3<b.h3; return a.flag<b.flag; } void build(){ sort(p+1,p+n+1,comp); for(int i=2;i<=n;++i) if(p[i].x==p[i-1].x) link(1,p[i-1].y,p[i].y,p[i].x); sort(p+1,p+n+1,Comp); for(int i=2;i<=n;++i) if(p[i].y==p[i-1].y) link(0,p[i-1].x,p[i].x,p[i].y); sort(s+1,s+tot+1,COMP); } int main(){ scanf("%d",&n); for(int i=1;i<=n;++i)p[i].read(),sub[++sub[0]]=p[i].x; sort(sub+1,sub+sub[0]+1); sz=unique(sub+1,sub+sub[0]+1)-sub-1; build();LL Ans(0); for(int i=1;i<=tot;++i){ if(!s[i].flag)Ans+=Query(s[i].h2)-Query(s[i].h1-1); else { Insert(s[i].h1,s[i].flag); } }cout<<Ans; return 0; }
题目 1 加法问题
2017-09-05 22:51:53
|
|
|
w了一个点..
|
|
|
暴力rank1
题目 2097 不平凡的boss
2017-09-05 21:53:56
|
|
|
陷入LCA的错解中……
题目 2095 不平凡的引线
2017-09-05 21:18:42
|
|
|
终于过了..........
|
|
|
题目 2743 [济南集训 2017] 叠纸条
2017-09-05 19:51:17
|
|
|
别的不说,先打个表。。
|
|
|
|
|
|
又练习一发分块
题目 247 售票系统
2017-09-05 17:22:20
|
|
|
说好的模板题交了n次...
建树的时候不是1—n而是1——n-1 查询的时候也有点小小的细节 |
|
|
好气
题目 247 售票系统
2017-09-05 16:41:25
|
|
|
|
|
|
坑点:打阶乘表算组合数,这个表应该开多大……
|
|
|
为什么我的输出和第一个点一样,却判我w
|
|
|
写到哭
题目 2557 [NOIP 2016]天天爱跑步
2017-09-05 15:31:28
|
|
|
离散化+差分
200t留念 |
|
|
烧内存
题目 2067 [BZOJ 3674] 可持久化并查集加强版
2017-09-05 11:47:20
|
|
|
自己脑洞的可持久化线段树,因为缺乏理论指导,代码丑的要死
题目 2554 可持久化线段树
2017-09-05 09:55:28
|
|
|
Tarjan求LCA 60分
题目 2084 [SYOI 2015] Asm.Def的基本算法
2017-09-05 09:44:03
|