今天上午再补昨天杭电多校4的题目,B题的莫队算法还差一些需要明天再看看,好在明天没有比赛。今天的牛客多校赛打的就很一般了,出了两道题,其中G题看到题意与之前的一道数论题很像,所以就做的麻烦了一些,而且当时我敲代码一个二分调半天,最后还是队友改了改二分过的,同时也学到队友的较好的二分形式,然后做的比较久的就是A题,一道01分数规划的模板题,半个集训队贪心了半天,连0.0%都过不了。。。其他题过的比较多的就是E一道费用流,这个最后有机会就看看吧。
- 01分数规划
链接:https://www.cnblogs.com/zzqsblog/p/5450361.html
http://www.cnblogs.com/perseawe/archive/2012/05/03/01fsgh.html
定义:01分数规划问题:所谓的01分数规划问题就是指这样的一类问题,给定两个数组,a[i]表示选取i的收益,b[i]表示选取i的代价。如果选取i,定义x[i]=1否则x[i]=0。每一个物品只有选或者不选两种方案,求一个选择方案使得R=sigma(a[i]*x[i])/sigma(b[i]*x[i])取得最值,即所有选择物品的总收益/总代价的值最大或是最小。
【例】给出n个物品,每个物品有两个属性a和b,选择n-k个元素,询问∑ai/∑bi的最大值。我们可以直接二分这个最大值X,而∑ai/∑bi≥x就等价于∑ai−x∑bi≥0。所以我们发现二分完把ai-x*bi排序后把最大的n-k个选出来就行了,如果这n-k个的∑ai−x∑bi≥0那么就是一个合法X。