HDU 4325 Flowers(树状数组+离散化)
2017-11-26 19:43
429 查看
http://acm.hdu.edu.cn/showproblem.php?pid=4325
题意:
给出n个区间和m个询问,每个询问为一个x,问有多少个区间包含了x。
思路:
因为数据量比较多,所以需要离散化。区间的离散化需要注意一下,如果端点不连续的话,需要额外插点。
区间情况就用树状数组来维护。
题意:
给出n个区间和m个询问,每个询问为一个x,问有多少个区间包含了x。
思路:
因为数据量比较多,所以需要离散化。区间的离散化需要注意一下,如果端点不连续的话,需要额外插点。
区间情况就用树状数组来维护。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn = 2*1e5+5; int n, m, tot; int a[maxn+1000],c[maxn]; struct node { int l,r; }query[maxn/2]; int lowbit(int x) { return x&-x; } int sum(int x) { int ret = 0; while(x>0) { ret+=c[x]; x-=lowbit(x); } return ret; } void add(int x, int d) { while(x<=maxn) { c[x]+=d; x+=lowbit(x); } } int main() { //freopen("in.txt","r",stdin); int T; int kase = 0; scanf("%d",&T); while(T--) { tot = 0; memset(c,0,sizeof(c)); scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { scanf("%d%d",&query[i].l,&query[i].r); a[tot++] = query[i].l; a[tot++] = query[i].r; } a[tot++] = 0; sort(a,a+tot); int tmp = tot; for(int i=1;i<tmp;i++) if(a[i]-a[i-1]>1) a[tot++] = a[i]-1; sort(a,a+tot); int num = unique(a,a+tot)-a; for(int i=1;i<=n;i++) { int l = lower_bound(a,a+num,query[i].l)-a; int r = lower_bound(a,a+num,query[i].r)-a; add(l,1); add(r+1,-1); } printf("Case #%d:\n",++kase); while(m--) { int x; scanf("%d",&x); x = lower_bound(a,a+num,x)-a; printf("%d\n",sum(x)); } } return 0; }
相关文章推荐
- hdu 4325 Flowers (树状数组+离散化)
- HDU 4325 Flowers(树状数组+离散化)
- hdu 4325 Flowers 2012多校1006题 树状数组解法
- HDU 4325 Flowers(树状数组)
- HDU OJ 4325 Flowers 【树状数组离散化】
- [HDOJ4325]Flowers(树状数组 离散化)
- hdu-4605 Magic Ball Game[离散化+回溯+树状数组]
- hdu 5021 Revenge of kNN II(树状数组,离散化,二分)
- hdu 3607 Traversal(树状数组+离散化)
- 【树状数组 + 离散化 + DP】 HDU 5542
- HDU-5792-World is Exploding(树状数组+离散化)
- HDU-5877-Weak Pair【树状数组】【离散化】【DFS】【2016大连网络】【好题】
- HDU 1394 Minimum Inversion Number (离散化 + 树状数组 求逆序对)
- Flowers--(树状数组,离散化)
- HDU 4605 Magic Ball Game(可持续化线段树,树状数组,离散化)
- HDU 3743 (树状数组,离散化)
- hdu 5877(树状数组+离散化)
- 反向树状数组 + 离散化 HDU 5372
- HDU - 3450 - Counting Sequences (线段树|树状数组 + 离散化)
- HDU 4605 Magic Ball Game(可持续化线段树,树状数组,离散化)