hdu 5700 区间交
来源:互联网 发布:数据分析包括哪些内容 编辑:程序博客网 时间:2024/04/29 19:53
#include<cstdio>#include<cstring>#include<algorithm>#include<set>#include<map>#include<vector>#define rep(i,j,k) for(int i=(int)j;i<=(int)k;i++)#define per(i,j,k) for(int i=(int)j;i>=(int)k;i--)using namespace std;typedef long long LL;typedef double db;const int N=110000;inline void read(int &x){ x=0;char p=getchar(); while(!(p<='9'&&p>='0'))p=getchar(); while(p<='9'&&p>='0')x*=10,x+=p-48,p=getchar();}int n,k,m;int l[N],r[N];int a[N];LL sum[N];int cnt[N];vector<int> g[N];void add(int x,int v){ for(;x<=n;x+=x&(-x))cnt[x]+=v;}int C=0;int ask(int x){ int ret=C; for(x=x-1;x;x-=x&(-x))ret-=cnt[x]; return ret;}int main(){ while(scanf("%d%d%d",&n,&k,&m)!=EOF){ rep(i,1,n)read(a[i]); rep(i,1,m){read(l[i]);read(r[i]);} rep(i,1,n)sum[i]=sum[i-1]+a[i]*1ll; rep(i,1,n)g[i].clear(); rep(i,0,n)cnt[i]=0; C=0; rep(i,1,m){ g[l[i]].push_back(r[i]); } LL ans=0; rep(i,1,n){ rep(j,0,g[i].size()-1) {add(g[i][j],1);++C;} if(ask(i)>=k){ int L=i;int R=n; int ret=i; while(L<R){ int mid=(L+R)>>1; if(ask(mid)>=k)ret=mid,L=mid+1; else R=mid; } if(ask(L)>=k)ret=L; ans=max(ans,sum[ret]-sum[i-1]); } } printf("%I64d\n",ans); } return 0;}
0 0
- HDU 5700 区间交
- hdu 5700 区间交
- hdu 5700 区间交
- HDU 5700 区间交
- HDU 5700 区间交 (枚举 + multiset)
- hdu 5700 区间交 (multiset)
- HDU-5700-区间交(线段树)
- HDU-5700-区间交
- hdu 5700 区间交(优先队列)
- [hdu 5700 区间交]树状数组+二分
- hdu 5700 区间交(线段树)
- HDU -- 5700 区间交 【思维 + 线段树】
- HDU 1006区间取交
- HDU 5700区间交(百度之星2B)
- hdu 5700 区间交 (线段树+枚举)
- 【HDU】5700 - 区间交(线段树 & 贪心)
- hdu 5700 区间交(树状数组+二分)
- 区间交
- 判断网络的连接
- DT大数据梦工厂Spark定制班笔记(013)
- Android基础之十八显示gif动画,动态图片
- c++课后作业
- 自定义控件三部曲之绘图篇(六)——Path之贝赛尔曲线和手势轨迹、水波纹效果
- hdu 5700 区间交
- C#下使用protobuf(Google Protocol Buffers)
- 寻找下一个结点
- CSS3伪类选择器
- 51nod 1624 取余最长路
- 人一切的痛苦,本质上都是对自己的无能的愤怒。──王小波
- Kafka技术内幕-日志压缩
- Hadoop数据存储
- js图片自动循环播放