典型的求最优比例环问题
参考资料:
http://blog.csdn.net/hhaile/article/details/8883652
此题中,给出每个点和每条边的权值,求一个环使 ans=∑点权/∑边权 最大。
因为题目要求一个环,而且必然是首尾相接的一个我们理解的纯粹的环,不可能是其他样子的环,
所以我们可以把一条边和指向的点看做整体处理。
上面方程可以化为:ans...
分类:
其他好文 时间:
2014-07-11 00:06:52
阅读次数:
321
d[i]=cost[i]-ans*dis[0][i]
据此二分。
但此题用Dinkelbach迭代更好
#include
#include
#include
#include
#include
using namespace std;
#define N 1010
double mp[N][N],c[N][N],x[N],y[N],z[N],e[N][N],d[N];
int vi...
分类:
其他好文 时间:
2014-07-10 21:48:32
阅读次数:
199
http://poj.org/problem?id=2728
大致题意:有n个村庄,输入每个村庄的位置和高度,这n个村庄要连在一起,村与村之间的长度为他们之间的欧几里得距离,花费是两村之间的高度差,要求连在一起的花费和与距离和之比的最小值。
思路:明显的最优比率生成树。二分答案λ,每条边重新赋权c[i] - λd[i] ,因为要求比值最小,那么对于所有的生成树,它们的f[λ]必须>...
分类:
其他好文 时间:
2014-06-05 04:18:42
阅读次数:
162
http://poj.org/problem?id=3621
大致题意:给出一个有向图,每个点都有一个点权,每条有向边也都有一个边权,要求出一个环使得环中点权之和与边权之和的比值最大。
思路:和最优比率生成树异曲同工。设点权是v[i],边权是e[i]。不同的是这里一个是点,一个是边。怎么像生成树一样把这两个值放到一起呢?可以把他们都转化到边上。同样的二分λ,每次给边重新赋权为v...
分类:
其他好文 时间:
2014-06-05 03:30:56
阅读次数:
191
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2676
大致题意:给出一个带权无向图,每条边有一个边权wi,求将S和T分开的一个割边集C,使得该割边集的平均边权最小,即最小化∑wi / |C| 。
详见amber关于最小割模型的论文
思路:amber论文中详细讲解了如何转化成函数及建图,值得注...
分类:
Web程序 时间:
2014-06-04 21:40:43
阅读次数:
401