desert专题

【POJ】2728 Desert King 最优比率生成树——01分数规划【经典】

最近在刷巨巨们放出来的专题,然后没做几题就卡住了,果然还是太弱了T U T... 这次做到了一题01分数规划求解的生成树问题。 题目大意是这样的:给你一个无向完全图,每条边i都有两个权值,长度a[ i ],花费b[ i ],需要选出其中的一些边构造一颗生成树,生成树需要满足条件:∑ b [ i ] / ∑ a [ i ]最小。 这样我还是先来介绍一下01分数规划吧~ 给定一个上述的问

poj 2728 Desert King 最优比率生成树 分数规划

一开始读题意可能有点难懂。 题意: 给你n个村庄的坐标点,它们都有一个海拔高度(你可以想象为三维空间)。现在让你给村庄通水,水道只能水平得建,即平行于地面。 每个水道的长度为村庄的水平距离(无视海拔高度),费用为两个村庄的海拔高度的差值。 现在只要修n-1条水道,让你求出  总费用/总长度  的最小比率。 思路: 分数规划 假设answer为最小的比率,answer <= su

POJ 2728 Desert King (最小比率生成树,二分/迭代)

题意:沙漠里的王国需要修建水渠,连接国都与村庄····。说白了求一棵树,每个点有三个坐标(x,y,z)。边的benifit为两点之间的距离,cost为两点的高度差。现在要求一棵树使得 cost / benift 最小。 题解:很显然任意两点之间都有边,所以是一个很稠密的图。用Prime。二分的话2800ms+, 迭代300ms+。 #include <cmath>#include <iost

Desert King POJ - 2728(最优比率生成树)

题目: 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 a

VIM颜色设置(evening, desert, morning....)

先看看vim编辑器提供的色彩配置方案:首先进入vim的color目录(/usr/share/vim62/colors,不同的系统目录不同,建议在~/建立.vim目录,然后在些目录里建立对应的文件夹和文件)$ ls /usr/share/vim/vim62/colorsblue.vim      delek.vim    evening.vim  murphy.vim     README.txt

poj2728 Desert King

poj2728 Desert King 大概题意:   每两个点中的边权有两个:一个是两点坐标的欧几里得距离( horizontal distance),暂且成为ai,第二个是两点的海拔之差,称为bi.然后需要一个生成树使sum(ai)\sum(bi)最小。   这里可以引入分数规划:我们设ai\bi=k,那么ai-bi*k=0 我们只需要二分一个值mid,当ai-bi*mid=0时,

【01规划】POJ 2728 Desert King

POJ 2728 Desert King 题意:给出 n 个点的坐标和它的高度,求一颗生成树使得树上所连边的两点高度差之和除以距离之和最小。 思路:同样构造f(l)方程, 令∑hight / ∑dis = l,那么∑hight = l*∑dis, 令f(l) = ∑(hight - l*dis) ,题目所求是最小值 那么∑hight / ∑dis ≤ l 说明存在更优解,即f(l)

codeforces COMPFEST-13 I. Illusions of the Desert 树剖

I. Illusions of the Desert (rating: 2300) 链接 https://codeforces.com/contest/1575/problem/I 题意 给一棵n个节点的树,点权为ai 。 要求对链做区间查询,单点修改。查的是边权和,边权的定义为: wab = max(|ax+ay|,|ax−ay|)。 input 6 4 10 -9 2 -1 4

poj-2728-Desert King-01分数规划+最小生成树

01分数规划的题目; 由于是完全图,所以求最小生成树的时候要使用prime算法。 否则的话很容易就超时了。 #include <iostream>#include<algorithm>#include<stdio.h>#include<string.h>#include<stdlib.h>#include<queue>#include<stack>#include<math