Description "题库链接" 给出 $n$ 个村庄的横坐标 $D_i$ 。要求在这 $n$ 个村庄内最多选择 $m$ 个作为通讯基站,在村庄 $i$ 建造通讯基站的代价为 $C_i$ 。对于村庄 $i$ ,如果其左右距离超过 $S_i$ 都没有通讯基站,那么需要额外的 $W_i$ 的代价。求 ...
分类:
其他好文 时间:
2018-03-30 21:50:34
阅读次数:
155
题解:Dp+线段树维护所有决策 f[i][j]表示第j个基站建在第i个位置,i之前的村庄与建基站的总费用的最小值 以j为阶段 枚举i,维护所有决策f[x][j-1]; 当一个村庄q不能被i覆盖了,那么在1~p之间建立基站的决策费用要+c p为q左边第一个不能覆盖q的村庄 复杂度O( nklogn); ...
分类:
其他好文 时间:
2018-02-20 12:51:33
阅读次数:
163
新的一年新的开始。结果第一题就用了几乎一周。而且感觉很不好。 先检讨自己。最近写的各种数据结构模板基本没打过出来,各种细节崩盘,这题线段树都居然被lazy标记没清零卡挂。 DP还是博大精深,这东西感觉没学好啊。 很容易想DP的。主要是怎么D,一开始我的想法是f[i][j]表示到第1~i个点被覆盖,建 ...
分类:
其他好文 时间:
2018-01-06 22:08:05
阅读次数:
169
1835: [ZJOI2010]base 基站选址 Description 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di。需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci。如果在距离第i个村庄不超过Si的范围内建立了一个通讯基站,那么就成它被覆盖 ...
分类:
其他好文 时间:
2017-10-22 23:34:50
阅读次数:
237
题目描述 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di。需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci。如果在距离第i个村庄不超过Si的范围内建立了一个通讯基站,那么就村庄被基站覆盖了。如果第i个村庄没有被覆盖,则需要向他们补偿,费用为Wi。现 ...
分类:
其他好文 时间:
2017-09-10 23:40:42
阅读次数:
239
题目描述 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di。需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci。如果在距离第i个村庄不超过Si的范围内建立了一个通讯基站,那么就村庄被基站覆盖了。如果第i个村庄没有被覆盖,则需要向他们补偿,费用为Wi。现 ...
分类:
其他好文 时间:
2017-08-12 22:31:51
阅读次数:
160
【BZOJ1835】[ZJOI2010]base 基站选址 Description 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di。需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci。如果在距离第i个村庄不超过Si的范围内建立了一个通讯基站,那么就成 ...
分类:
其他好文 时间:
2017-07-07 22:42:29
阅读次数:
194
# include <cstdio> # include <cstring> # include <cstdlib> # include <iostream> # include <vector> # include <queue> # include <stack> # include <map> ...
分类:
其他好文 时间:
2017-05-02 22:20:07
阅读次数:
191
首先想到DP,f[i][j]表示前i个村庄,共建了j个站的最小费用,且第j个站建在第i个村庄上 f[i][j]=min(f[i][j],f[k][j-1]+cost(k,i));(1<=k<i) cost(k,i)表示选了k和i之后,他们之间需要的w的和 然后这样是O(kn^2)的,对于100%的数 ...
分类:
其他好文 时间:
2017-04-30 12:26:44
阅读次数:
243