[CTSC2018]混合果汁】的更多相关文章

题目链接: CTSC2018混合果汁 显然如果美味度高的合法那么美味度低的一定合法,因为美味度低的可选方案包含美味度高的可选方案. 那么我们二分一个美味度作为答案然后考虑如何验证? 选择时显然要贪心的先选单价低的果汁. 那么我们按美味度从大到小将每种果汁排序,然后对于每种果汁建立一个版本的主席树,主席树维护的权值是果汁单价. 每次验证时在对应版本主席树中查找,如果左子树中总体积大于L则递归左子树,否则将答案加上左子树所有果汁的总价然后递归右子树. #include<set> #include&…
5343: [Ctsc2018]混合果汁 题目描述 小 R 热衷于做黑暗料理,尤其是混合果汁. 商店里有 \(n\) 种果汁,编号为 \(0,1,\cdots,n-1\) .\(i\) 号果汁的美味度是 \(d_i\),每升价格为 \(p_i\).小 R 在制作混合果汁时,还有一些特殊的规定,即在一瓶混合果汁中,\(i\) 号果汁最多只能添加 \(l_i\) 升. 现在有 \(m\) 个小朋友过来找小 R 要混合果汁喝,他们都希望小 R 用商店里的果汁制作成一瓶混合果汁.其中,第 \(j\) 个…
BZOJ_5343_[Ctsc2018]混合果汁_二分答案+主席树 题意:给出每个果汁的价格p,美味度d,最多能放的体积l.定义果汁混合后的美味度为果汁的美味度的最小值. m次询问,要求花费不大于g,总体积不小于L,求最大美味度,如果不能满足,输出-1. 二分答案.然后转变为求价格前L小的果汁之和. 类似任务查询系统那道题. 权值线段树维护结点总体积和全部购买的总花费. 按美味度建立主席树即可. 代码: #include <cstdio> #include <cstring> #i…
混合果汁 bzoj-5343 Ctsc-2018 题目大意:给定$n$中果汁,第$i$种果汁的美味度为$d_i$,每升价格为$p_i$,每次最多添加$l_i$升.现在要求用这$n$中果汁调配出$m$杯混合果汁.第$j$杯混合果汁的要求是总价格不多余$g_j$,总体积不小于$L_j$且美味度最大.一杯混合果汁的美味度为所有添加的果汁的美味度的最小值.求$m$杯混合果汁的美味度之和的最大值. 注释:$1\le n,m,d_i,p_i,l_i\le 10^5$,$1\le g_i,L_i\le 10^…
题目描述 小 R 热衷于做黑暗料理,尤其是混合果汁. 商店里有 nn 种果汁,编号为 0,1,\cdots,n-10,1,⋯,n−1 . ii 号果汁的美味度是 d_idi​ ,每升价格为 p_ipi​ .小 R 在制作混合果汁时,还有一些特殊的规定,即在一瓶混合果汁中, ii 号果汁最多只能添加 l_ili​ 升. 现在有 mm 个小朋友过来找小 R 要混合果汁喝,他们都希望小 R 用商店里的果汁制作成一瓶混合果汁.其中,第 jj 个小朋友希望他得到的混合果汁总价格不大于 g_jgj​ ,体积…
https://www.luogu.org/problemnew/show/P4602 https://loj.ac/problem/2555 https://www.lydsy.com/JudgeOnline/problem.php?id=5343 小 R 热衷于做黑暗料理,尤其是混合果汁. 商店里有 n 种果汁,编号为 0,1,2,...,n−1.i 号果汁的美味度是 di,每升价格为 pi.小 R 在制作混合果汁时,还有一些特殊的规定,即在一瓶混合果汁中,i 号果汁最多只能添加 li 升.…
问题描述 小 R 热衷于做黑暗料理,尤其是混合果汁. 商店里有 n 种果汁,编号为 0, 1, 2, . . . , n − 1.i 号果汁的美味度是 di,每升价格为 pi.小 R 在制作混合果汁时,还有一些特殊的规定,即在一瓶混合果汁中,i 号果汁最 多只能添加 li 升. 现在有 m 个小朋友过来找小 R 要混合果汁喝,他们都希望小 R 用商店里的果汁 制作成一瓶混合果汁.其中,第 j 个小朋友希望他得到的混合果汁总价格不大于 gj,体 积不小于 Lj.在上述这些限制条件下,小朋友们还希望…
LOJ 题目链接 & 洛谷题目链接 题意:商店里有 \(n\) 杯果汁,第 \(i\) 杯果汁有美味度 \(d_i\),单价为 \(p_i\) 元/升.最多可以添加 \(l_i\) 升.有 \(m\) 次询问,每次给出两个数 \(G,L\),你可以将商店里的一些果汁混合起来,使得他们的总体积不小于 \(L\) 升,总价格不超过 \(G\) 元,问:选择的果汁中美味度最小值的最大值是多少. \(1 \leq n,m \leq 10^5\),\(1 \leq d_i,p_i,l_i \leq 10^…
题目分析 首先考虑到最小值最大,二分答案.假设答案为k,显然这满足单调性.如果某个k使得这个情况下选不出.那么比k大的一定也选不出,所以二分答案. 接着我们可以贪心,当我们确认了k以后,一定会优先选费用最少的,那么可以按费用维护主席树,在树上查询最小的l升果汁. 题目代码暂时没拿到…
传送门 整体二分好题. 题意简述:nnn种果汁,每种有三个属性:美味度,单位体积价格,购买体积上限. 现在有mmm个询问,每次问能否混合出总体积大于某个值,总价格小于某个值的果汁,如果能,求所有方案中用于混合的果汁的美味度的最小值的最大值. 思路: 首先考虑单次询问怎么做,看这个询问的类型应该可以二分答案. 接着思考如何checkcheckcheck,这个时候可以发现果汁可以按照美味度单调递减排列来让我们二分这个答案. 拍完序之后就可以采用贪心的方式,我们知道应该从单位体积从小到大买,因此我们建…
题目连接:https://www.luogu.org/problemnew/show/P4602 因为题中说是让最小值最大,所以自然想到二分答案.对于每一个二分的值,判断是否合法,若合法,在右区间二分,否则在左区间二分. 那么如何判断是否合法呢?首先,对于每一个二分值mid,我们应该在[mid, n]的区间中贪心的取价格尽量低的果汁,当该小朋友所有的钱花光后,判断取到的果汁是否到了Lj升. 至于如何取,首先因为价格是无序的,所以可以建立一个大小为价格的值域的线段树,同时维护每一个区间的价格之和以…
分析: 整体二分或二分答案+主席树,反正没有要求强制在线,两个都可以做... 贪心还是比较显然的,那么就是找前K大的和...和CQOI的任务查询系统很像 附上代码: #include <cstdio> #include <cmath> #include <cstring> #include <cstdlib> #include <iostream> #include <queue> #include <algorithm>…
二分$d$, 转为判断判断是否能取到$Lj$升, 再可持久化一下就好了 #include <iostream> #include <algorithm> #include <math.h> #include <cstdio> #include <set> #include <map> #include <string> #include <vector> #include <string.h> #i…
BZOJ 5343 福利题. 对于每一个询问可以二分$d$,然后把满足条件的果汁按照$p$从小到大排序贪心地取$L$升看看满不满足价格的条件. 那么按照$p$建立权值主席树,$chk$的时候在主席树上走一走算出价格即可. 当然也可以整体二分. 时间复杂度都是$O(nlog^2n)$. Code: #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef l…
题目 \(CTSC\)也有这么水的题啊 首先看到美味值来自于最小的美味值,我们就可以先考虑把所有的果汁按照美味值排序 接下来可以考虑二分,二分出一个\(mid\)我们只使用美味值大于等于\(mid\)的果汁能否满足要求 我们求一下要满足\(L_i\)的要求最小花费是多少就可以啦 根据一个非常显然的贪心,我们尽量使用那些费用较小的果汁 于是按照费用为下标建立一棵主席树,在上面二分尽量选择左区间就好了 代码 #include<algorithm> #include<iostream>…
题目链接 BZOJ5343 题解 明显要二分一下美味度,然后用尽量少的价格去购买饮料,看看能否买到\(L\)升,然后看看能否控制价格在\(g\)内 尽量少的价格,就优先先选完便宜的饮料,由于询问的是一定美味度范围的,主席树上询问即可 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<map>…
考场上写了60分的二分答案,又写了15分的主席树,然后就弃了.. 合起来就A了啊!主席树忘了开20倍空间最后还炸掉了. 最水的签到题被我扔了,主要还是不会用线段树求前缀和. 做法应该是比较显然的,首先肯定要二分答案,然后需要查询的就是大于等于当前二分值的最便宜的L个饮料的总花费是否不超过g,这个直接上主席树就好. #include<cstdio> #include<algorithm> #define rep(i,l,r) for (int i=l; i<=r; i++) t…
题目 把果汁按美味度降序排序,以单价为下标插入主席树,记录每个节点的\(sum\)果汁升数和\(val\)果汁总价. 每次询问二分最小美味度,查询美味度大于等于\(mid\)的总体积为\(L\)的最低总价. #include<bits/stdc++.h> #define LL long long using namespace std; namespace IO { char ibuf[(1<<21)+1],obuf[(1<<21)+1],st[20],*iS,*iT,…
注意到问题具有单调性,所以一个询问可以通过二分答案来解决. 对于多组询问,就采用整体二分来处理. 将果汁按\(d\)从大到小排序,二分出一个位置\(mid\),只考虑在位置\(mid\)之前的果汁,其中位置\(mid\)的果汁的\(d\)即为二分出的所有参与混合的果汁的美味度的最小值. 在判断一个\(mid\)合不合法时,将其之前所有果汁的体积的前缀和和各自的体积乘价格前缀和处理出来,后者就是买下所有果汁的价格. 然后对于一个询问,再进行一次二分,找到最小的价格来满足其体积的需求,然后就可以判断…
(总计:共66题) 4.18~4.25:19题 4.26~5.2:17题 5.3~5.9: 6题 5.10~5.16: 6题 5.17~5.23: 9题 5.24~5.30: 9题 4.18 [BZOJ3786]星系探索(伪ETT) [BZOJ4337][BJOI2015]树的同构(树的最小表示法) [BZOJ3551][ONTAK2010]Peaks(加强版)(Kruskal重构树,主席树) [CTSC2017]游戏(Bayes定理,线段树) 4.19 [CTSC2017]吉夫特(Lucas定…