用01分数规划 + prime + 二分 竟然2950MS惊险的过了QAQ 前提是在TLE了好几次下过的 = = 题目意思:有n个村庄,村庄在不同坐标和海拔,现在要对所有村庄供水,只要两个村庄之间有一条路即可,建造水管距离为坐标之间的欧几里德距离,费用为海拔之差,现在要求方案使得费用与距离的比值最小,很显然,这个题目是要求一棵最优比率生成树. 解题思路: 对答案进行二分,当把代进去的答案拿来算最小生成树的时候,一旦总路径长度为0,就是需要的答案. 0-1规划是啥? 概念有带权图G, 对于图中每条…
题目大意: 有n个村庄,村庄在不同坐标和海拔,现在要对所有村庄供水, 只要两个村庄之间有一条路即可,建造水管距离为坐标之间的欧几里德距离,费用为海拔之差, 现在要求方案使得费用与距离的比值最小,很显然,这个题目是要求一棵最优比率生成树. ———————————————————————————————————— 这是一道最优比率生成树的题目,是个很明显的0-1分数规划,设每条边代价为ci,距离为di 那么题目要求(∑(ci*xi))/(∑(di*xi))的最小值 xi∈{0,1} 我们进行一波转换…
http://poj.org/problem?id=2728 题意: 在这么一个图中求一棵生成树,这棵树的单位长度的花费最小是多少? 思路: 最优比率生成树,也就是01分数规划,二分答案即可,题目很简单,因为这题是稠密图,所以用prim算法会好点. #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #include<vector> #include&…
Language: Default Desert King Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 22113   Accepted: 6187 Description David the Great has just become the king of a desert country. To win the respect of his people, he decided to build channels…
题目背景 如果你能提供题面或者题意简述,请直接在讨论区发帖,感谢你的贡献. 题目描述 对于一张有向图,要你求图中最小圈的平均值最小是多少,即若一个圈经过k个节点,那么一个圈的平均值为圈上k条边权的和除以k,现要求其中的最小值 输入输出格式 输入格式: 第一行2个正整数,分别为n和m 以下m行,每行3个数,表示边连接的信息, 输出格式: 一行一个数,表示最小圈的值,保留8位小数. 输入输出样例 输入样例#1: 复制 4 5 1 2 5 2 3 5 3 1 5 2 4 3 4 1 3 输出样例#1:…
/* 参考博文:http://www.cnblogs.com/ylfdrib/archive/2010/09/01/1814478.html 以下题解为转载代码自己写的: zoj2676 胡伯涛论文<最小割模型在信息学竞赛中的应用>中详细介绍了分数规划思想的应用.经典的有最优比率生成树. 对于分数规划的应用中,常用的就是0-1分数规划,即解向量X = {x1, --,xi, --}, 对于∀xi∈{0,1}. 主要求解过程是,首先将原分式优化问题,转换成非分式优化问题,利用单调的性质,用二分逼…
BZOJ1486 HNOI2009 最小圈 Description 应该算是01分数规划的裸板题了吧..但是第一次写还是遇到了一些困难,vis数组不清零之类的 假设一个答案成立,那么一定可以找到一个环使得其边权和大于等于边数∗ans. 可以发现答案是具有二分性的,二分出一个临时答案ans′,并且用ans′对每条边进行约束,再用深搜SPFA判断一下负环,如果有负环说明当前解可行,继续二分就好了. 注意题目要求保留到小数点后八位,多开一点二分次数防止精度不够啊 /******************…
传送门 答案只保留了6位小数WA了两次233. 这就是一个简单的01分数规划. 直接二分答案,根据图中有没有负环存在进行调整. 注意二分边界. 另外dfs版spfa判负环真心快很多. 代码: #include<bits/stdc++.h> #define N 3005 #define M 10005 using namespace std; inline int read(){ int ans=0; char ch=getchar(); while(!isdigit(ch))ch=getcha…
给定整数序列a,b,求出下式的最大值 sum{ai*xi}/sum{bi*xi},xi=0|1 通俗来说,就是选出一些整数对(ai,bi),使得选出的a之和与选出的b之和商最大化 二分答案L,即选出的a之和与b之和的商是L 判断L是否成立,只要判断是否存在sum{ai-L*bi}>0即可 poj2728为要找出各边收益除以各边成本的最大生成树 那么二分商L,另边权变成ai-L*bi求最大生成树,如果和>0,答案可行 #include <iostream> #include <…
Description David the Great has just become the king of a desert country. To win the respect of his people, he decided to build channels all over his country to bring water to every village. Villages which are connected to his capital village will be…