![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【线性规划】
张松超
这个作者很懒,什么都没留下…
展开
-
POJ ~ 3621 ~ Sightseeing Cows (01分数规划 + 最短路)
题意 给一个有向图,点数为L,边数为P,然后输入L个点的点权F[i],接下来输入P条边(u->v边权为w),求一个点权和比边权和最大的环,求这个比值。 题解 假设点权和为X,边权和为Y,X/Y=ans,求ans最大。 u->v边权为w的边,我们建边F[v] - ans*w,可得,我们二分ans,如果对于当前枚举值 x 该函数值小于0,那么x应该变大,如果该函数大于0,x应该...原创 2018-09-23 15:00:28 · 284 阅读 · 0 评论 -
BZOJ ~ 1486 ~ [HNOI2009]最小圈 (01分数规划 + dfs版spfa)
题解 假设答案为ans,转化为。所以对于每条边,建边w[i] - ans,根据是否有负环进行二分求解即可。 #include<bits/stdc++.h> using namespace std; const int MAXN = 1e5 + 5; const int INF = 0x3f3f3f3f; struct Edge { int from, to; dou...原创 2018-09-24 21:54:19 · 194 阅读 · 0 评论 -
POJ ~ 2976 ~ Dropping tests (01分数规划)
题意 给你N个物品,每个物品有一个价值Vaule和花费Cost,让你挑选N - K个,使得最大。 题解 大佬博客链接:01分数规划问题相关算法与题目讲解(二分法与Dinkelbach算法) 这个题实在序列上的01分数规划,直接按vaule - x*cost排序就好了。 //#include<bits/stdc++.h> #include<iostream&g...原创 2018-09-19 21:08:11 · 159 阅读 · 0 评论 -
POJ ~ 2728 ~ Desert King (01分数规划 + 最小生成树)
题意 多组测试数据,N等于0时结束。 有N个村庄,然后N行给你每个村庄的坐标(x,y)和海拔z,连接两个村庄需要修欧几里得距离len[i][j]的路,连接海拔不同的村庄需要付出海拔差的花费cost[i][j],现在要使得他们连通起来,求最小单位花费(即最小) 题解 01分数规划问题。把cost[i][j] - x*len[i][j]看成边权,然后求最小生成树即可。二分的下界显然是...原创 2018-09-20 17:50:45 · 270 阅读 · 0 评论