用户工具

站点工具


2020-2021:teams:hotpot:atcoderbc176

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
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]]\}$。 
2020-2021/teams/hotpot/atcoderbc176.1598576086.txt.gz · 最后更改: 2020/08/28 08:54 由 lotk