首页 > 其他分享 >ssy中学暑假集训分数规划笔记

ssy中学暑假集训分数规划笔记

时间:2024-07-30 19:18:41浏览次数:7  
标签:分数 ssy sum mid times 暑假 frac 规划 集训

分数规划出现在了我们今天的模拟赛中,看在这个名字深得我心而且我能看懂证明和内容的份上,给开个专题吧!

\(1.定义\):

分数规划就是求分数的极值。
形象一点就是,给出\(a_i\)和\(b_i\),求一组\(w_i \in \{0,1\}\)最小化或者最大化下面的算式:

\[\frac{\sum_{i=1}^{n} a_i*w_i}{\sum_{i=1}^{n} b_i*w_i} \]

\(2.解法\):

最简单的一个方法是二分答案,我们二分一个\(mid\),假设上述算式 \(>\) \(mid\),也就是:

\[\frac{sum_{i=1}^{n} a_i*w_i}{\sum_{i=1}^{n} b_i*w_i} > mid \]

这里的符号可能不是\(>\)而是\(\ge\),甚至还可能是\(\le\),具体看题目,让你二分什么,答案就是什么,其实就是因题而异

那么我们给他化个简吧,就是这样:

\[ \sum_{i=1}^{n} a_i*w_i > mid \times \sum_{i=1}^{n} b_i*w_i \\=>\sum_{i=1}^{n} a_i*w_i - mid \times \sum_{i=1}^{n} b_i*w_i > 0 \]

显而易见,我们可以提出一个\(\sum_{i=1}^{n} w_i\),故原式为:

\[\sum_{i=1}^{n} w_i \times(a_i-mid \times b_i) > 0 \]

那么只要求出不等号左边的式子的最大值就行了。如果最大值比\(0\)要大,说明 \(mid\) 是可行的,否则不可行。


说了这么多,来补一下吧23333。

对于这个题,我们简化一下题意:

有\(n\)个物品,每个物品有两个权值\(a\)和\(b\),你需要确定一组\(w_i \in \{0,1\}\),使得 \(\frac{\sum a_i \times w_i}{\sum b_i \times w_i}\)最大,但是要求\(\sum w_i \times b_i \ge W\)。

本题多了分母至少为\(W\)的限制,因此无法再使用贪心。
可以考虑动态规划,把\(b_i\)作为第\(i\)个物品的重量,\(a_i - mid \times b_i\)作为第\(i\)个物品的价值,然后问题就转化成\(01\)背包,来个代码吧!

double f[1010];
bool check(double mid) {
  for (int i = 1; i <= W; i++) f[i] = -1e9;
  for (int i = 1; i <= n; i++)
    for (int j = W; j >= 0; j--) {
      int k = min(W, j + b[i]);
      f[k] = max(f[k], f[j] + a[i] - mid * b[i]);
    }
  return f[W] > 0;
}

标签:分数,ssy,sum,mid,times,暑假,frac,规划,集训
From: https://www.cnblogs.com/grz0306/p/18333192

相关文章

  • 2024暑假集训测试14
    前言比赛链接。被签到题爆踩了,主要就是签到题没打排名就炸了,T1看一眼没思路就去看T2了,T2一眼有思路结果少取了一个等挂了\(25\),本地没开O2跑的巨慢卡了半天长,交上去跑飞快?T4题都读错了,以为\(m\)是边数,就寻思着图上怎么跑,干脆没打,赛后才发现是树。总之打得非常唐。......
  • 24 暑假 diary
    贵在坚持,难在坚持,成在坚持。十年寒窗磨一剑,是非成败在今朝。拼搏每一天,充实每一天,快乐每一天。无才无以立足,不苦不能成才。梦想,今日扬帆起航;前途,注定灿烂辉煌。自信,是无尽智慧的凝聚。平淡,是成功路上的驿站。遇到会做的题——仔细;遇到不会做的题——冷静。......
  • luogu P2371 [国家集训队] 墨墨的等式 题解
    luoguP2371[国家集训队]墨墨的等式题目传送门思路同余最短路同余最短路同余最短路与差分约束有异曲同工之妙,都将约束条件转化为边,每种状态转化为点。把本来与图论毫不相干的问题抽象到具体的图上,通过拓扑排序,最短路等基础算法获得最小状态,从而解决问题。在本题中,以\(0\)......
  • 集训日记
    如题,这是八月的nihachu(花露水限定版)在【数据删除】集训的日记,虽然说不愿意这样写日记,但感觉每天确实得有点固定且可做的事情。每天的引言随精神状态不定向变异。7.28————“潇洒不是不怕,是愿付出代价”抵达广州,在机场书包带坏了,结果笑得没心没肺跟个傻子一样。周老师帮我......
  • 「模拟赛」暑期集训CSP提高模拟10(7.28)
    \(145pts,Rank10\),众数分。数学专题模拟赛%%%总结写前面:1.线性递推式复杂度过大考虑矩阵快速幂优化;2.T1长时间切不了就先跳,先把所有题看一遍,拿分为主。赛时记录正常开T1,期望数学题,大概读懂了,手模下小样例,模了一遍又一遍,“我并不认为样例是对的”,跳了(很正确的决定)。......
  • 暑假集训csp提高模拟11
    赛时rank9,T1100,T2100,T30,T40update:赛后T1被hack了,成了99,死因没有记忆化挂成了rank10我又要挂分了。T3暴力挂了?话说jjdw和k8啥时候回来。T1Fate签到题,最短路板子。考虑一个点\(a\),其最短路前驱节点为\(b\),前驱结点组成的集合为\(B\),其次短路的前驱节点为......
  • 2024夏中山集训第1周
    【NOIP模拟一】20240729比赛有点唐,C没开ll挂50,D挂了一点部分分。C注意到答案是s除以区间gcd。裴蜀定理推广D像这样建图,跑全源最短路。在这张图上有\(1\to2\to3\to4\to5\)和\(7\to8\to9\to3\to10\to11\)两条路径。把路径上的点看作车上的点,每个点本身看作......
  • 暑假集训CSP提高模拟11
    A.Fate求次短路方案数.这题有点小水了,好像之前做过.具体的方案显然是DP,考虑枚举当前每一个路径长度,假如比最短路更优则覆盖最短路,之前的最短路用来覆盖次短路.否则如果比次短路更优,则直接覆盖次短路.方案数的话考虑一样的方法维护,只是在遇到相等的路径长时使方案数加一即可.......
  • 暑假集训CSP提高模拟11
    暑假集训CSP提高模拟11组题人:@KafuuChinocpp\(T1\)P152.Fate\(24pts\)强化版:HDU1688Sightseeing设\(dis_{i,0/1}\)表示从\(s\)到\(i\)的最短路/次短路长度,\(f_{i,0/1}\)表示从\(s\)到\(i\)的最短路/次短路条数。\(dijkstra\)过程中按照路径长度与......
  • 『模拟赛』暑假集训CSP提高模拟11
    Rank昨天积攒的rp生效了!A.Fate签到题。次短路计数,感觉做过类似的,不过这里次短路定义为最短路长度+1,赛时把自环想成环了,原谅我犯唐。还是用dijkstra,我们这次开两个dis数组存最短路和次短路长度,然后两个cnt数组存二者的个数,稍微想想就能想到一共的四种可能:更新后......