Gym 100345G Pulp Fiction 贪心
来源:互联网 发布:mac装windows系统步骤 编辑:程序博客网 时间:2024/06/03 15:51
这题很简单,就是对于每本书,在下一次出现前能否写完,能写完就写,写不完就在下一次idea出现之后判断,这样不停的判断,把中断的书全都加到队列里去,到最后没书写的时候把队列里的书拿出来继续写,由于要求的是天数总和最小,所以需要用到优先队列。
题目传送门
代码:
#include<bits/stdc++.h>#define MEM(a,x) memset(a,x,sizeof(a));#define MEMINF(a) memset(a,0x3f,sizeof(a));using namespace std;typedef long long LL;const int MAXN=1e5+10;const int INF=0x3f3f3f3f;const int MOD=1000000007;int n;struct node { LL r,p; bool operator < (const node &a) const { return r<a.r; }}nod[MAXN];priority_queue<LL,vector<LL>,greater<LL> >q;int main() { freopen("pulp.in","r",stdin); freopen("pulp.out","w",stdout); cin>>n; for (int i=1; i<=n; ++i) { scanf("%lld %lld",&nod[i].r,&nod[i].p); nod[i].r++; } LL ans=0; LL t; sort(nod+1,nod+n+1); for (int i=1; i<=n; ++i) { q.push(nod[i].p); t=nod[i].r; if (i<n) while (!q.empty()) { if (t>=nod[i+1].r) break; LL u=q.top(); q.pop(); if (t+u-1>=nod[i+1].r) { u-=nod[i+1].r-t; t=nod[i+1].r; q.push(u); } else { t=t+u; u=0; ans+=t-1; } } } while(!q.empty()) { LL u=q.top(); q.pop(); t+=u; ans+=t-1; } cout<<ans<<endl;}
0 0
- Gym 100345G Pulp Fiction 贪心
- Problem G. Pulp Fiction-Gym 100345G-贪心
- 2007-2008 Winter Petrozavodsk Camp, Andrew Stankevich Contest 30-G - Pulp Fiction-贪心+优先队列
- 从电影《Pulp Fiction》片段看精简敏捷开发
- gym 100430 G【贪心+map瞎搞】
- Gym 100801G Graph(贪心构造)
- GYM 100030 G.Procrastination(贪心)
- GYM 100488 G.Change-making Problem(贪心)
- Gym 100712E 贪心
- codeforces gym 100548G
- Gym 100269G-Garage
- CodeForces Gym 100735G
- CodeForces Gym 100735G
- Gym 100971G Repair
- Gym 100685G
- Codeforces-GYM-100923G
- Gym 101097G Party
- codeforces [Gym-100814G]
- Java IO字节流读取文件总结
- 顺序表
- 内核对象 复制对象句柄 DuplicateHandle 跨进程边界共享内核对象
- Android SharedPreferences
- Android APK反编译就这么简单 详解(附图)
- Gym 100345G Pulp Fiction 贪心
- Android中已经添加权限,依然提示缺少权限,此时你需要添加动态权限
- SAP企业信息化与最佳实践丛书 SAP管理会计100问 PDF下载
- Android Activity接收Service发送的广播
- ceph-monmap 命令处理流程
- 最大公约数和最小公倍数
- 大数据产业到底是机遇还是陷阱?
- JavaScript——你理解的js基础是啥(JavaScript(核心、BOM、DOM))
- PnP