BZOJ 1572[Usaco2009 Open]工作安排Job
2016-09-12 13:54
507 查看
一开始还是看错题了,不过还是挺简单的。
用个优先队列找出每次不够时间时舍弃哪个就好。
用个优先队列找出每次不够时间时舍弃哪个就好。
#include<queue> #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; typedef long long LL; const int N=100010; struct node{int x,y;}a ; int Cmp(node x1,node x2){if(x1.x!=x2.x)return x1.x<x2.x;return x1.y>x2.y;} priority_queue<int>q; int main() { int n,i,use=0; scanf("%d",&n); for(i=1;i<=n;i++)scanf("%d%d",&a[i].x,&a[i].y); sort(a+1,a+1+n,Cmp); LL ans=0; for(i=1;i<=n;i++) { ans+=(LL)a[i].y,use++,q.push(-a[i].y); if(use>a[i].x){ans+=(LL)q.top(),q.pop(),use--;} } printf("%lld\n",ans); return 0; }
相关文章推荐
- 【BZOJ 1572】 1572: [Usaco2009 Open]工作安排Job(贪心+优先队列)
- BZOJ1572: [Usaco2009 Open]工作安排Job
- [BZOJ1572][Usaco2009 Open]工作安排Job(贪心+堆)
- 【BZOJ】1572: [Usaco2009 Open]工作安排Job
- bzoj 1572: [Usaco2009 Open]工作安排Job
- [bzoj1572]: [Usaco2009 Open]工作安排Job
- bzoj1572 [Usaco2009 Open]工作安排Job(贪心)
- bzoj 1572: [Usaco2009 Open]工作安排Job【贪心+堆】
- 【bzoj1572】[Usaco2009 Open]工作安排Job 贪心+堆
- bzoj1572 [Usaco2009 Open]工作安排Job【贪心 堆】
- bzoj1572 [Usaco2009 Open]工作安排Job
- bzoj1572[Usaco2009 Open]工作安排Job 堆
- BZOJ1572 [Usaco2009 Open]工作安排Job
- bzoj1572 [Usaco2009 Open]工作安排Job
- 【BZOJ1572】【usaco 2009 open】工作安排job
- BZOJ1572: [Usaco2009 Open]工作安排Job 贪心
- BZOJ 1572: [Usaco2009 Open]工作安排Job( 贪心 )
- bzoj1572 [Usaco2009 Open]工作安排Job
- Bzoj1572 [Usaco2009 Open]工作安排Job
- [BZOJ1572] [Usaco2009 Open]工作安排Job(贪心 + 堆)