
【算法】分数规划
文章平均质量分 54
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【BZOJ1758】【WC2010】重建计划
【题目链接】点击打开链接【思路要点】首先,题目要求求解平均值的最大值,考虑分数规划。二分答案\(Mid\),将树上每条边权减去\(Mid\),问题变为树上是否存在边数在\(L\)到\(R\)之间的权值之和非负的路径。考虑点分治。记录\(Dist\)数组,\(Dist_{i}\)表示边数为\(i\)的从分治根节点出发的路径的最大权值。对于每一个分治子树进行BFS,记当前BFS深度为\(i\),在\(原创 2018-01-18 13:57:28 · 450 阅读 · 0 评论 -
【BZOJ1486】【HNOI2009】最小圈
【题目链接】点击打开链接【思路要点】先二分答案,然后判断图中是否存在负环。时间复杂度可近似认为为\(O(MLogW)\)。【代码】#include<bits/stdc++.h> using namespace std; const int MAXN = 5005; const double INF = 1e12; const double eps = 1e-12; template &...原创 2018-04-03 18:46:01 · 246 阅读 · 0 评论 -
【BZOJ4898】【APIO2017】商旅
【题目链接】点击打开链接【思路要点】明显的分数规划,第一步先二分答案\(Ans\)。接下来,有一种显然的想法是拆点,把在每一个点时,持有某个物品的状态拆成\(K\)个点,然后,问题转化为了图中是否存在非负环。但这个做法复杂度是\(O((N+M)KLogS)\)的,(应该)无法通过。进一步考虑,实际上,我们并不需要记录当前持有什么物品,如果一次买卖的买入市场和卖出市场都已经确定,那么这次买卖的最大获...原创 2018-04-03 20:48:24 · 345 阅读 · 0 评论 -
【BZOJ4753】【JSOI2016】最佳团体
【题目链接】点击打开链接【思路要点】分数规划,然后树上背包判断是否可行。时间复杂度\(O(N^2LogW)\)。【代码】#include<bits/stdc++.h> using namespace std; const int MAXN = 3005; const double eps = 1e-5; const double INF = 1e99; template <typ...原创 2018-04-14 10:12:44 · 259 阅读 · 0 评论 -
【BZOJ4476】【JSOI2015】送礼物
【题目链接】点击打开链接【思路要点】单独统计区间每个长度为\(L\)的区间的最大值和最小值,更新答案,这部分复杂度可以用单调队列做到\(O(N)\)。二分答案,问题转化为是否存在\(L≤j-i+1≤R\)使得\(\frac{M(i,j)-m(i,j)}{j-i+K}≥Ans\),即\((M(i,j)-Ans*j)-(m(i,j)-Ans*i)≥K*Ans\)。可以证明,区间的两个端点不是区间最小/...原创 2018-04-20 15:45:59 · 452 阅读 · 0 评论