摘要: 1 /* 2 01分数规划 3 分数规划 4 Dinkelbach算法 5 6 sigma(点权)/sigma(边权) <= lamda 7 8 sigma(F)/sigma(T) <= lamda 9 10 L = sigma(点) - lamda*sigma(边); 11 12 最终是个环 13 14 SPFA可以快速的检测是否存在负环,也就是说lamda值是否可行 15 16 此题和2728非常的类似,自己实现queue速度会快点 17 */ 18 19 20 // include file 21 #include <cstdio> 22 #include < 阅读全文
posted @ 2011-03-02 21:23 AC2012 阅读(1349) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 此题和3757一样都用到了分数规划。 3 做了这两个题之后,感觉这样的问题一般是找个比率的最小值, 4 然后转化为目标函数的形式,然后在通过某种方法或者排序或者最小生成树 5 等等来找最小的解 6 7 8 任何两点之间都可连线,然后找出一个最小生成树 9 01二分规划 10 最优比率生成树 11 二分 12 迭代 13 Dinkelbach算法 14 15 sigma(cost[i])/sigma(len[i]) >= lamda 16 17 L = sigma(cost[i]) - lamda*sigma(len[i]). 01分数规划,可二分解和dinkelbach算法 阅读全文
posted @ 2011-03-02 19:37 AC2012 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 N K F 3 4 pi bi ci 5 6 ti = Fi/pi + Fi/bi = Fi*( (pi+bi)/(pi*bi) ); 7 vi = (pi*bi)/(pi+bi); 8 这是Fi文件量,机器i需要的传输时间和速度 9 10 要求F分给K台机器,最终用时t 11 对于选中的服务器,速度为vi = fi/t = (pi*bi)/(pi+bi); 12 sigma(vi) = sigma(fi)/t; 13 t = sigma(fi)/sigma(vi) 14 t = F/sigma(vi); 15 16 要求花费最小,每个被选中的服务器的花费为 fi*ci = t. 阅读全文
posted @ 2011-03-02 14:30 AC2012 阅读(567) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 模拟,简单 3 */ 4 // include file 5 #include <cstdio> 6 #include <cstdlib> 7 #include <cstring> 8 #include <cmath> 9 #include <cctype> 10 #include <ctime> 11 12 #include <iostream> 13 #include <sstream> 14 #include <fstream> 15 #include <iom 阅读全文
posted @ 2011-03-02 09:01 AC2012 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 模拟,读懂题 3 */ 4 // include file 5 #include <cstdio> 6 #include <cstdlib> 7 #include <cstring> 8 #include <cmath> 9 #include <cctype> 10 #include <ctime> 11 12 #include <iostream> 13 #include <sstream> 14 #include <fstream> 15 #include <io 阅读全文
posted @ 2011-03-02 00:45 AC2012 阅读(475) 评论(0) 推荐(0) 编辑