[BZOJ3928/4048]Outer space invaders】的更多相关文章

[BZOJ3928/4048]Outer space invaders 题目大意: 有\(n(n\le300)\)个物品,第\(i\)个物品会在\(a_i\sim b_i\)时刻出现,且离你的距离为\(d_i\),每个时刻你可以花\(r\)的代价将离你距离\(r\)以内的物品清理掉.问清理掉所有物品的代价至少为多少? 思路: 区间DP.用\(f_{l,r}\)表示将出现时间完全包含在\(l\sim r\)之间的物品全部清理掉需要的代价,找到距离最远的物品\(h\),则\(f_{l,r}=\min…
第一眼,我勒个去...然后看到n ≤ 300的时候就2333了 首先把时间离散化,则对于一个时间的区间,可以知道中间最大的那个一定要被选出来,然后把区间分成左右两份 于是区间DP就好了,注意用左开右开的区间比较方便2333 如果暴力找区间内最大值是O(n3)的,当然st表就是O(n2logn)的了...不过st表辣么难蒟蒻根本不会QAQQQ /************************************************************** Problem: 3928…
传送门 区间dpdpdp好题. 首先肯定需要把坐标离散化. 然后在数轴上面区间dpdpdp. 对于当前区间,区间中最大的数一定会被选. 于是我们记f[i,j]f[i,j]f[i,j]表示所有左端点在iii以及其后面,右端点在jjj以及其前面的所有外星人gggggg的最小花费. 由于最大的一定被选. 于是我们枚举它是在哪个时间点被选的. 然后用f[i][k−1],f[k+1][j]f[i][k-1],f[k+1][j]f[i][k−1],f[k+1][j]转移过来就行了.(时间点经过了kkk的都不…
BZOJ3928 双倍经验BZOJ4048 Codeforces GYM100543 L \(Description\) \(Solution\) 考虑出现时间在\([l,r]\)内的敌人,设最远的敌人距离为\(d_{max}\),我们至少要用一次半径\(r=d_{max}\)的攻击以消灭它. 如果我们选择在\(t\)时刻攻击这个距离最远的,那么时间区间跨越\(t\)的其它敌人也会被顺带消灭. 这样就划分成了两个子区间的问题. 先对时间区间离散化,然后区间DP,对当前区间找出距离最远的敌人,然后…
原文链接https://www.cnblogs.com/zhouzhendong/p/CF-Gym100543L.html 题目传送门 - CF-Gym100543L 题意 $T$ 组数据. 有 $n$ 个外星人,第 $i$ 个外星人将在 $a_i$~$b_i$ 这段时间内出现,距离你 $d_i$ . 任何时刻,你可以使用 $R$ 点能量将距离你不超过 $R$ 的所有外星人全部打死. 问你最少使用能量才能干掉所有外星人. $n\leq 300,\ \ \ \ 1\leq a_i\leq b_i\…
$f[i][j]$表示消灭起始时间在$(i,j)$内的外星人所花费的最小代价. 考虑在这个区间内距离最远的外星人h,在他的区间中一定要选一个点要开一炮,而且这一炮可以顺便把其他跨过这个点的敌人消灭,剩下只需消灭没有跨过这个点的敌人. 枚举开炮时间$f[i][j]=min(f[i][k]+f[k][j]+d[h])$. 区间需要离散化. #include<iostream> #include<cstdio> #include<cstring> #include<al…
题目链接 题意 有n个人,每个人有一个出现时间a和一个开枪时间b和一个距离d,在任意一个时刻,你可以选择炸人,你要炸一个人的花费是和他的距离d,并且所有的已经出现并且还没开枪的和你距离<=d的人都可以被炸死.问炸死所有人的最小花费是多少. 例如样例就是在第四个时间点炸,这样可以把三个人都炸死. 思路 区间DP.将时间离散化,dp[st][ed]表示炸完在st到ed这段时间的所有人的最小花费是多少. 我们每次都找到只属于当前区间里面的人的花费的最大值. 如果找不到只属于这段区间的点,那么这段区间的…
题目链接 题意 你受到一群外星人的攻击,第 $i$ 个外星人会在 $ai$ 时间出现,与你的距离为 $di$,且必须在 $bi$ 时间前消灭.你有一个区域冲击波器,每次攻击可以设定一个功率 $R$,这次攻击内会消灭所有距离 $R$ 内的所有外星人,并消耗 $R$ 单位的燃料电池.求消灭所有外星人所需的最少单位的燃料电池. 分析 由于我们可以先求出小区间内的最小花费,再合并成大区间,这是一个区间DP 设 $f[i][j]$ 表示消灭时间范围为区间 $[i,j]$ 内所有敌人(出现时间和消灭时间均在…
发售年份 1978 平台 街机 开发商 Taito 类型 射击 https://www.youtube.com/watch?v=MU4psw3ccUI…
区间\(dp\)提升复习 不得不说这波题真的不简单... 技巧总结: 1.有时候转移可以利用背包累和 2.如果遇到类似区间添加限制的题可以直接把限制扔在区间上,每次只考虑\([l,r]\)被\([i,j]\)完全包含的情况 [BZOJ4897] [Thu Summer Camp2016] 成绩单 典型的利用背包转移,\(dp[i][j]\)表示处理完这段\([i,j]\)区间的答案 转移时一段区间可以被先处理掉或者直接从已经处理完的\(dp[i][j]\)中取过来,这个可以用一个背包维护 con…