目录

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]]\}$。