【bzoj1828/Usaco2010 Mar】balloc 农场分配——贪心+差分+优先队列
2017-10-13 19:49
423 查看
Description
#include<cstdio> #include<cstring> #include<algorithm> #include<queue> const int N=1e5+10; int n,m,a ,p ; struct node{int l,r;}e ; bool cmp(node aa,node bb){return aa.l<bb.l;} int read(){ int ans=0,f=1;char c=getchar(); while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){ans=ans*10+c-48;c=getchar();} return ans*f; } std::priority_queue<int>q; int main(){ n=read();m=read(); for(int i=1;i<=n;i++)a[i]=read(); for(int i=1;i<=m;i++){ int l=read(),r=read();e[i]=(node){l,r}; p[l]++;p[r+1]--; } std::sort(e+1,e+1+m,cmp); int now=0,h=1;int ans=m; for(int i=1;i<=n;i++){ now+=p[i]; while(h<=m&&e[h].l==i)q.push(e[h].r),h++; while(now>a[i]&&!q.empty()){ int pp=q.top();q.pop(); p[pp+1]++;now--;ans--; } } printf("%d\n",ans); return 0; }bzoj1828
相关文章推荐
- BZOJ_1828_[Usaco2010 Mar]balloc 农场分配_线段树
- 【BZOJ】1828: [Usaco2010 Mar]balloc 农场分配(经典贪心)
- BZOJ 1828: [Usaco2010 Mar]balloc 农场分配
- bzoj:1828: [Usaco2010 Mar]balloc 农场分配
- BZOJ1828: [Usaco2010 Mar]balloc 农场分配
- BZOJ 1828: [Usaco2010 Mar]balloc 农场分配 线段树 贪心
- bzoj 1828: [Usaco2010 Mar]balloc 农场分配 (贪心+线段树)
- bzoj1828: [Usaco2010 Mar]balloc 农场分配 线段树+贪心
- BZOJ1828 [Usaco2010 Mar]balloc 农场分配
- bzoj 1828: [Usaco2010 Mar]balloc 农场分配【贪心+线段树】
- [BZOJ1828][Usaco2010 Mar]balloc 农场分配(贪心+线段树)
- BZOJ 1828 [Usaco2010 Mar]balloc 农场分配(贪心+线段树)
- [贪心][Usaco2010 Mar]balloc 农场分配
- BZOJ 1828 农场分配(贪心)
- BZOJ1828: [Usaco2010 Mar]balloc 农场分配
- [Usaco2010 Mar]balloc 农场分配
- BZOJ1828: [Usaco2010 Mar]balloc 农场分配 贪心+线段树
- 【bzoj1827/Usaco2010 Mar】gather 奶牛大集会——树的重心+贪心
- 【bzoj1828】[Usaco2010 Mar]
- 【bzoj1828】[Usaco2010 Mar]