CodeFocrces 369E. Valera and Queries
来源:互联网 发布:linux trash是什么意思 编辑:程序博客网 时间:2024/05/21 05:37
反过来求在两个点之间的线段的个数。。。。很好的数状数组题目。。。。。
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn=3000010;int ans[maxn];struct Interval{ int l,r,id;}I[maxn],q[maxn];bool cmp(Interval a,Interval b){ return a.r<b.r;}int tree[maxn];int lowbit(int x) {return x&-x; }void Add(int x){ while(x<1000010) { tree[x]+=1; x+=lowbit(x); }}int getSum(int x){ int sum=0; while(x>0) { sum+=tree[x]; x-=lowbit(x); } return sum;}int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) { scanf("%d%d",&I[i].l,&I[i].r); I[i].id=i; } int e=0; for(int i=0;i<m;i++) { int t; scanf("%d",&t); for(int j=0;j<t;j++) { scanf("%d",&q[e].r); q[e].id=i; if(j==0) q[e].l=0; else q[e].l=q[e-1].r; e++; } q[e].id=i; q[e].l=q[e-1].r; q[e++].r=1000010; } sort(I,I+n,cmp); sort(q,q+e,cmp); for(int i=0;i<m;i++) ans[i]=n; memset(tree,0,sizeof(tree)); int j=0; for(int i=0;i<e;i++) { while(j<n&&I[j].r<q[i].r) { Add(I[j].l);j++; } ans[q[i].id]-=getSum(q[i].r-1)-getSum(q[i].l); } for(int i=0;i<m;i++) printf("%d\n",ans[i]); return 0;}
- CodeFocrces 369E. Valera and Queries
- CodeFocrces 369E. Valera and Queries
- CF 369E - Valera and Queries(树状数组)
- CodeForces - 369E Valera and Queries 离线+树状数组
- Codeforces 369E Valera and Queries --树状数组+离线操作
- CodeForces - 369E Valera and Queries(树状数组)
- Codeforces 369E Valera and Queries【逆向思维+离线+树状数组】好题!好题!好题!
- Codeforces Round #216 (Div. 2) E. Valera and Queries (BIT)
- Codeforces Round #216 (Div. 2) E. Valera and Queries (树状数组)
- Codeforces Round #216_div2_E.Valera and Queries
- Codeforces 441 E. Valera and Number
- Codeforces 441E Valera and Number 概率DP
- CodeForces 441 E.Valera and Number(概率DP)
- Codeforces 441E Valera and Number 概率DP
- CodeForces 369B Valera and Contest
- CodeForces 369C. Valera and Elections
- codeforces 369C Valera and Elections DFS
- Codeforces 369D. Valera and Fools
- org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'java.la
- JPA 复合主键
- C/C++之 extern关键字详解
- bzoj 1503==noi2003T1郁闷的收纳员——splay
- cocos2d-x笔记
- CodeFocrces 369E. Valera and Queries
- 堆和栈的区别
- 蓝牙4.1为消费者带来什么
- Android避免应用出现在最近使用APP列表里
- CCFinderX安装手记
- class类 反射
- uniGUI显示Warning: Form must be shown after it is created的解决办法
- 判断运行环境
- memmove函数与内存重叠