D. Nested Segments
来源:互联网 发布:私募公募 知乎 编辑:程序博客网 时间:2024/05/29 16:56
线段树或者树状数组的裸题
按一个端点排序之后,离散化一下,没什么坑
#include <algorithm>#include <iostream>#include <cstring>#include <cstdio>#include <map>#define FOR(i,a,b) for(int i=a;i<=b;i++)#define ROF(i,a,b) for(int i=a;i>=b;i--)#define mem(i,a) memset(i,a,sizeof(i))#define rson mid+1,r,rt<<1|1#define lson l,mid,rt<<1#define ll long long#define LL long longusing namespace std;const double eps = 0.0000001;const int maxn = 2e5+7;const int mod = 1e9+7;template <typename T>inline void read(T &_x_){ _x_=0;bool f=false;char ch=getchar(); while (ch<'0'||ch>'9') {if (ch=='-') f=!f;ch=getchar();} while ('0'<=ch&&ch<='9') {_x_=_x_*10+ch-'0';ch=getchar();} if(f) _x_=-_x_;}struct node{ int x,y; int pos;}p[maxn];bool cmp(node a,node b){ return a.x<b.x;}int ans[maxn],sum[maxn*2],pos,n,a[maxn*2],cnt=0;void update(int x){ while(x<=pos){ sum[x]++; x+=x&(-x); }}int query(int x){ int cut = 0; while(x > 0){ cut += sum[x]; x -= x & (-x); } return cut;}int main(){ read(n); FOR(i,1,n){ read(p[i].x),read(p[i].y),p[i].pos=i; a[cnt++] = p[i].x; a[cnt++] = p[i].y; } sort(p+1,p+1+n,cmp); sort(a,a+cnt); pos = unique(a,a+cnt)-a; ROF(i,n,1){ int my = lower_bound(a,a+pos,p[i].y)-a; ans[p[i].pos] = query(my); update(my); } FOR(i,1,n) printf("%d\n",ans[i]); return 0;}
阅读全文
0 0
- D. Nested Segments
- codeforces 652D Nested 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 树状数组
- CodeForce 652D Nested Segments 树状数组
- Educational Codeforces Round 10-D. Nested Segments
- CodeForces D. Nested Segments【逆序对类型】
- Nested Segments
- cf#ECR10-D. Nested Segments-树状数组+二分
- Codeforces 652D Nested Segments 【树状数组 + 离散化】
- CodeForces 652D Nested Segments (树状数组)
- 初识树状数组 Educational Codeforces Round 10 D - Nested Segments
- CodeForces 652D Nested Segments(树状数组+离散化)
- CodeForces 652D Nested Segments(离散化,树状数组)
- 【Codeforces 652 D Nested Segments】+ 树状数组 + 离散化
- Codeforces 652D Nested Segments【离散化+思维+树状数组】
- Leetcode算法学习日志-53 Maximum Subarray
- java代码读取到excel的两列数据,进行相乘得到新的数据
- sql 编辑功能名称重复性校验
- 电解电容器的用途
- c++ 继承/派生、访问属性、构造函数
- D. Nested Segments
- 从集成方法到神经网络:自动驾驶技术中的机器学习算法有哪些?
- 三分钟学会用SpringMVC搭建最小系统(超详细)
- RocketMQ原理解析-producer 4.发送分布式事物消息
- 查看mysql的版本
- Android流式布局
- Mac 使用virtualenv安装 matplotlib的解决方案
- zoj1107FatMouse and Cheese 记忆化搜索
- Android studio链接不上adb