洛谷P2605 基站选址】的更多相关文章

神TM毒瘤线段树优化DP......新姿势get. 题意:有n个村庄,在里面选不多于k个建立基站. 建立基站要ci的费用.如果一个村庄方圆si内没有基站,那么又要支出wi的费用.求最小费用. 解:很显然想到DP,f[i][j]表示前i个村庄里面放了j个基站,其中第i个一定选的最小费用.费用只统计不超过i的. 转移就是枚举从p转移,对于p到i的每一个,检查是否需要付钱. 这样是n³k的,只有20分. #include <cstdio> #include <algorithm> typ…
问题描述 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di.需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci.如果在距离第i个村庄不超过Si的范围内建立了一个通讯基站,那么就村庄被基站覆盖了.如果第i个村庄没有被覆盖,则需要向他们补偿,费用为Wi.现在的问题是,选择基站的位置,使得总费用最小. 输入格式 输入文件的第一行包含两个整数N,K,含义如上所述. 第二行包含N-1个整数,分别表示D2,D3,-,DN ,这N-1个数是递增的. 第三行包含N…
正解:线段树优化$dp$ 解题报告: 传送门$QwQ$ 难受阿,,,本来想做考试题的,我还造了个精妙无比的题面,然后今天讲$dp$的时候被讲到了$kk$ 先考虑暴力$dp$?就设$f_{i,j}$表示选的第$j$个基站是$i$的最小费用,就有$f_{i,j}=min(f_{k,j}+cost(k,i))+c_i$,这个$cost$就$[k+1,i-1]$之间所有基站的补偿之和. 发现这个$cost$并不好求?于是逆向思考,每次在决策完选$x$转移完之后就会进入不选$x$的阶段嘛(因为是,$j$在…
洛谷2605:基站选址 题意描述: 有\(N\)个村庄在一条直线上,第\(i(i>1)\)个村庄的距离第\(1\)个村庄的距离为\(D_i\). 需要在这些村庄中建立不超过\(K\)个通讯站,在第\(i\)个村庄建立基站的费用为\(C_i\). 如果在距离第\(i\)个村庄不超过\(S_i\)的范围内建立了一个通讯站,那么村庄就被基站覆盖. 如果第\(i\)个村庄没有被覆盖,则要向他们补偿,费用为\(W_i\). 现在的问题是,选择基站的位置,使得总花费最小. 数据范围: \(k\leq N,k…
原题传送门:P2604 [ZJOI2010]基站选址 看一眼题目,变知道这题一定是dp 设f[i][j]表示在第i个村庄修建第j个基站且不考虑i+1~n个村庄的最小费用 可以得出f[i][j] = Min(f[k][j - 1] + cost[k][i] ) + c[i] (j - 1 <= k < i) 其中cost[k][i]表示i~k之间没有基站所需要的费用 计算复杂度O(N),加上循环,总复杂度O(N^2 K) 看一下数据范围K <= N,K <= 100 , N <…
洛谷P2514 bzoj2426 其实是个简单的贪心,然而不适合在脑子不清醒的时候做...看不懂题意续了1个小时 很容易发现应该枚举新建哪个发电厂,对于这种方案就是取其中b吨煤运到原来发电厂,取剩下(suma-b)吨煤运到新发电厂.首先假设全部都运到原来发电厂,然后把其中suma-b吨代价最小的改为运到新发电厂即可 #include<cstdio> #include<algorithm> #include<cstring> #include<vector>…
LINK:基站选址 md气死我了l达成1结果一直调 显然一个点只建立一个基站 然后可以从左到右进行dp. \(f_{i,j}\)表示强制在i处建立第j个基站的最小值. 暴力枚举转移 复杂度\(n\cdot k^2\). 考虑如何求一个区间中的贡献 显然我们需要把每个点的左右给求出来 这个其实可以利用二叉堆来维护左端点/右端点. 发现多次调用 考虑优化 利用邻接表即可. 容易想到利用数据结构来优化. 可以发现 不断向右的过程中只要把每个点的贡献在线段树上表达出来即可. 这点很容易得到 不再赘述.…
1835: [ZJOI2010]base 基站选址 题目描述 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di.需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci.如果在距离第i个村庄不超过Si的范围内建立了一个通讯基站,那么就成它被覆盖了.如果第i个村庄没有被覆盖,则需要向他们补偿,费用为Wi.现在的问题是,选择基站的位置,使得总费用最小. 输入数据 (base.in) 输入文件的第一行包含两个整数N,K,含义如上所述. 第二行包含N-1个整数,…
[LG2605][ZJOI2010]基站选址 题面 洛谷 题解 先考虑一下暴力怎么写,设\(f_{i,j}\)表示当前\(dp\)到\(i\),且强制选\(i\),目前共放置\(j\)个的方案数. 那么转移为\(f_{i,j}=\min_{k=1}^{i-1} \{f_{k,j-1}+cost_{k,i}\}+c_i\),其中\(cost_{l,r}\)表示\([l,r]\)只选两端中间的补偿. 其中\(cost\)只需要\(O(\frac {n^3}4)\)预处理就好了,那么复杂度为\(O(\…
题目大意:略 洛谷题面传送门 BZOJ题面传送门 注意题目的描述,是村庄在一个范围内去覆盖基站,而不是基站覆盖村庄,别理解错了 定义$f[i][k]$表示只考虑前i个村庄,一共建了$k$个基站,最后一个基站建在了i处,最小的总花费 $f[i][k]=min(f[j][k]+calc(j,i))\;calc(j,i)$表示$i$和$j$之间,无法被覆盖的点,需要付的补偿总和 考虑如何求出$calc(j,i)$ 定义$st_{i}$,$ed_{i}$表示第$i$个村庄能覆盖的最左端点和最右端点 即$…