传送门 https://vjudge.net/problem/POJ-1160#author=SCU2018 题目描述 在一条水平的公路上建有n个小屋,两个小屋间的距离是它们的横坐标之差的绝对值.保证小屋的横坐标是整数,以及没有两个小屋建立在同一位置.现在需要建立m所加油站(m<=n),加油站只能建立在小屋所在的位置. 现在需要你写个程序,给定了所有小屋的位置和加油站的数目,计算出每个小屋离最近的加油站的距离总和的最小值. 翻译来自vjudge 分析 是一道非常经典的题目,数据范围中给出了一点提…
[题目大意] v个村庄p个邮局,邮局在村庄里,给出村庄的位置,求每个村庄到最近邮局距离之和的最小值. [思路] 四边形不等式,虽然我并不会证明:( dp[i][j]表示前i个村庄建j个邮局的最小值,w[i][j]表示在i到j之间建立一个邮局的最小值.w[i][j]显然取i~j的中位数,可以在O(1)时间内求出. 显然dp[i][j]=min{dp[k][j-1]+w[k+1][i]}. 傻傻写错i和j…… #include<iostream> #include<cstdio> #i…
前言 昨天XY讲课!讲到这题!还是IOI的题!不过据说00年的时候DP还不流行. 题面 http://poj.org/problem?id=1160 分析  § 1 中位数 首先我们考虑,若有x1 < x2 < ... < xn,则当∑abs(x - xi)最小时,x为x1 , x2 , ... , xn这n个数的中位数. 证明如下:我们把x1 , x2 , ... , xn看作数轴上n个点,我们先考虑两端,要使abs(x - x1) + abs(x - xn)最小,那么x必定在x1和x…
http://poj.org/problem?id=1160 (题目链接) 题意 按照递增顺序给出一条直线上坐标互不相同的n个村庄,要求从中选择p个村庄建立邮局,每个村庄使用离它最近的那个邮局,使得所有村庄到各自所使用的邮局的距离总和最小. Solution 经典dp方程: 其中f[i][j]表示前j个村庄,放置i个邮局的最优方案.w[i][j]表示在i到j的村庄放置一个邮局,i~j的村庄到这个邮局的总距离.考虑如何求解w[i][j],因为只放置一个邮局,所以一定是放在最中间的那个点上,所以邮局…
[POJ1160]Post Office Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 22362 Accepted: 12080 Description There is a straight highway with villages alongside the highway. The highway is represented as an integer axis, and the position of each…
7624:山区建小学 Description 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往.已知任意两个相邻的村庄之间的距离为di(为正整数),其中,0 < i < m.为了提高山区的文化素质,政府又决定从m个村中选择n个村建小学(设 0 < n < = m < 500 ).请根据给定的m.n以及所有相邻村庄的距离,选择在哪些村庄建小学,才使得所有村到最近小学的距离总和最小,计算最小值. Input 第1行为m…
点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Digits(点此看题面) 比赛时写数位\(DP\)写挂了,最后交了个裸暴力.(后来发现写挂是因为没考虑借位的情况) 好吧,其实数位\(DP\)也是可以过的,但是,好像有个更简单的方法. 对于每一位,我们可以直接枚举出相加与这一位上数字相等的两个数字(总共只有\(4\)种情况),然后求解即可. 分类讨论这…
前言 \(WQS\)二分听起来是个很难的算法,其实学起来也并不是那么难. 适用范围 在某些题目中,会对于某个取得越多越优的物品,限定你最多选择\(k\)个,问你能得到的最优答案. 例如这道题目:[CF739E]Gosha is hunting. 这些题目一般都可以通过枚举选择的物品个数并\(O(n)DP\)来做到\(O(nk)\). 但如果随着选择物品个数的增加,得到贡献的斜率是不递增的,我们就可以用\(WQS\)二分,来将\(O(nk)\)的时间复杂度优化为\(O(nlogn)\). 大致思想…
题面在这里 题意 一条路上有\(n\)个村庄,坐标分别为\(x[i]\),你需要在村庄上建设\(m\)个邮局,使得 每个村庄和最近的邮局之间的所有距离总和最小,求这个最小值. 数据范围 \(1\le n\le300,1\le m\le30\) sol =山区建小学. 设\(f[i][j]\)表示把\(i\)个邮局建到前\(j\)个村庄时的最小距离总和,转移方程 \[f[i][j]=\min_{k=i-1}^{j}{(f[i-1][k]+d[k+1][j])}\] 其中\(d[l][r]\)表示在…
Post Office Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 18680   Accepted: 10075 Description There is a straight highway with villages alongside the highway. The highway is represented as an integer axis, and the position of each vill…