bzoj1555KD之死 贪心+堆
2017-10-29 10:21
162 查看
题意:有一些箱子,有承重和重量,最底下有一个车,有承重限制。
要求最多能放多少个箱子。
不能说水,也不能说难的一道题。。
首先肯定知道如果bt-aw>at-bw那么a肯定要在b上面更加优秀,那么按照这个排序以后来贪心做。
如果当前盒子必须要放,那么如果放上去以后超重了,那么把最重的盒子拿出来扔掉再把当前盒子加入。如果堆中没有盒子了则无解。
如果当前盒子不必须要放,那么能放就放,如果这个盒子不能放,那么看看他是否比当前最重的盒子重就好了。
最后由于拖车不算盒子,ans-1.
要求最多能放多少个箱子。
不能说水,也不能说难的一道题。。
首先肯定知道如果bt-aw>at-bw那么a肯定要在b上面更加优秀,那么按照这个排序以后来贪心做。
如果当前盒子必须要放,那么如果放上去以后超重了,那么把最重的盒子拿出来扔掉再把当前盒子加入。如果堆中没有盒子了则无解。
如果当前盒子不必须要放,那么能放就放,如果这个盒子不能放,那么看看他是否比当前最重的盒子重就好了。
最后由于拖车不算盒子,ans-1.
#include<cstdio> #include<algorithm> #include<cstring> #include<queue> #define fo(i,a,b) for(int i=a;i<=b;i++) #define fd(i,a,b) for(int i=a;i>=b;i--) using namespace std; priority_queue<int,vector<int> > q; int n,m,w,ans; const int N=6e5+5; struct node { int t,w; bool bz; }a ; typedef long long ll; ll sum,k; bool cmp(node a,node b) { return a.w+a.t<b.t+b.w; } int main() { scanf("%d%d%d",&n,&m,&k); fo(i,1,n) { scanf("%d%d",&a[i].w,&a[i].t); } fo(i,1,m) { int x; scanf("%d",&x); a[x].bz=1; sum+=a[x].w; } sort(a+1,a+n+1,cmp); a[++n].bz=1,a .t=k; sum=0; fo(i,1,n) { if (a[i].bz) { while (sum>a[i].t) { if (q.empty()) { printf("Foolish SD!"); return 0; } else { sum-=q.top(); q.pop(); ans--; } } sum+=a[i].w,ans++; } else { if (!q.empty()&&sum>a[i].t) { if (q.top()<a[i].w||sum-q.top()>a[i].t) continue; } if (sum>a[i].t) { sum-=q.top(); q.pop(); ans--; } sum+=a[i].w,ans++;q.push(a[i].w); } } printf("%d\n",ans-1); }
相关文章推荐
- BZOJ 3829 Poi2014 FarmCraft 树形DP+贪心
- bzoj5158 [Tjoi2014]Alice and Bob(贪心+构造+树状数组+dp)
- bzoj5189 [Usaco2018 Jan]Cow at Large(树+贪心)
- [BZOJ 2429] 聪明的猴子 Kruskal+贪心
- 【bzoj4198】[Noi2015]荷马史诗 贪心+堆
- 【bzoj1034】[ZJOI2008]泡泡堂BNB 贪心
- bzoj 2789 [Poi2012]Letters 贪心+逆序对
- [bzoj 2151]种树(贪心)
- bzoj 1685: [Usaco2005 Oct]Allowance 津贴(贪心)
- [bzoj1150][堆][贪心][CTSC2007]数据备份Backup
- [BZOJ3131][Sdoi2013]淘金(数位DP+贪心+堆)
- 【BZOJ4576】【BZOJ4580】【Usaco2016 Open】262144 贪心
- BZOJ 1196 贪心+最小生成树
- bzoj 2067 [Poi2004]SZN 贪心 二分
- BZOJ2428——随机化贪心
- 【BZOJ3671】[Noi2014]随机数生成器【模拟】【贪心】【卡空间】
- BZOJ 4319: cerc2008 Suffix reconstruction|贪心构造
- [BZOJ1692][Usaco2007 Dec]队列变换(贪心+后缀数组)
- 【bzoj3105】【cqoi2013】【新Nim游戏】【线性基+贪心】
- 【BZOJ1692】[Usaco2007 Dec]队列变换【后缀数组】【贪心】