这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
2020-2021:teams:hotpot:atcoderbc176 [2020/08/28 08:54] lotk 创建 |
2020-2021:teams:hotpot:atcoderbc176 [2020/08/28 13:07] (当前版本) 喝西北风 |
||
---|---|---|---|
行 1: | 行 1: | ||
- | =====AtCoder Beginner Contest 176===== | + | ======AtCoder Beginner Contest 176====== |
+ | |||
+ | =====A - Takoyaki ===== | ||
+ | |||
+ | ====题目大意==== | ||
+ | |||
+ | 给 $n,x,t$ ,问 $n/x$ 取上整乘 $t$. | ||
+ | |||
+ | ====解题思路==== | ||
+ | |||
+ | 模拟 | ||
+ | |||
+ | =====B - Multiple of 9===== | ||
+ | |||
+ | ====题目大意==== | ||
+ | |||
+ | 给定一个长为 $n \le 2e5$ 的数,问其是否是9的倍数。 | ||
+ | |||
+ | ====解题思路==== | ||
+ | |||
+ | 每位的数相加看能否整除9即可。 | ||
+ | |||
+ | =====C - Step===== | ||
+ | |||
+ | ====题目大意==== | ||
+ | |||
+ | 给定长为 $n \le 2e5$ 的数组。允许给每个数任意加值,问最少加多少使数组非减。 | ||
+ | |||
+ | ====解题思路==== | ||
+ | |||
+ | 原本非减就不管,否则加到和前一个数一样大即可。 | ||
+ | |||
+ | =====D - Wizard in Maze===== | ||
+ | |||
+ | ====题目大意==== | ||
+ | |||
+ | 给定 $H×W ,H,W \le 1000$ 的一张图,图上有一些不能走的点,支持两种操作,一是走相邻的格子不消耗步数,二是在周围 $5×5$ 的格子内任意移动并消耗一个步数,问最少多少步能够从一点到另一点。 | ||
+ | |||
+ | ====解题思路==== | ||
+ | |||
+ | 本题图的范围较大,我们不能直接用SPFA解决,而需要通过一次dfs和并查集处理出连通块,再通过bfs得出结果。 | ||
+ | |||
+ | |||
+ | =====E - Bomber ===== | ||
+ | |||
+ | ====题目大意==== | ||
+ | |||
+ | 在一张 $H×W ,H、W \le 3e5$ 的图上,给定一些点 $(n \le min(H×W,3e5))$,问选定一行一列最多能覆盖多少个点。 | ||
+ | |||
+ | ====解题思路==== | ||
+ | |||
+ | 我们显然可以处理出覆盖点最多的行和列,然后依次枚举检查它们交叉的点处有没有点即可,由于点的个数有限,这个检查是符合复杂度的。 | ||
+ | |||
+ | =====F - Brave Chain===== | ||
+ | |||
+ | ====题目大意==== | ||
+ | |||
+ | 给长度为3n($n\le 2000$)的序列,每个数都是1到n。每次从前五个里挑三个删除,若这三个数相等,则结果加一。最后剩下的三个若相等,结果也加一。问最终答案的最大值。 | ||
+ | |||
+ | ====解题思路==== | ||
+ | |||
+ | 首先最朴素的思想,是枚举前一次剩下的结果,复杂度$O(n^3)$。随后,发现每次转移的结果,要么是原先的两个,要么是原先的一个加之后的三个中的一个,要么是三个中的两个。后两种一共O(n)种情况,记录一下所有剩余情况的最大mx和所有剩余的里有i的最大$f_i$即可。第一种除非三个全相等,否则结果不变。可以证明,三个全相等时,最优情况一定是删这三个。因此可以单独再用一个数cnt记录这个即可。最终答案为$cnt+max\{mx,dp[a[3n]][a[3n]]\}$。 |