Atcoder abc 复盘(更新中)
+313 219
补:+191 229 212 211 223 243
注:该为 AtCoder Beginner Contest 复盘合计,可以直接点击右侧查看,目前还有一些在更新中。由比赛编号降序排序。
Beginner Contest 335(更新中)
A - 202< s >3< /s >
思路:立意很好的一道题,惊艳到我了。
B - Tetrahedral Number
思路:
C - Loong Tracking
思路:
D - Loong and Takahashi
思路:
E - Non-Decreasing Colorful Path
无
F - Hop Sugoroku
思路:第一次赛时AC F题,太吊啦!!!
Beginner Contest 333(更新中)
A - Three Threes
思路:for 循环。
B - Pentagon
思路:对比差值即可。
C - Repunit Trio
思路:预处理,之后直接输出即可。
D - Erase Leaves
思路:找顶点 \(1\) 所有子节点删除所需的数量总和,再删除最多需要删除的那个子节点数量。
E - Takahashi Quest
思路:贪心,每次拿从最后的瓶子开始拿。
Beginner Contest 330(更新中)
A - Counting Passes
无
B - Minimize Abs 1
无
C - Minimize Abs 2
无
D - Counting Ls
思路:
E - Mex and Update
思路:
Beginner Contest 312(更新中)
A - Chord
思路:if 枚举。
B - TaK Code
思路:对每个 \(9 \times 9\) 的矩阵依次枚举是否是二维码。
C - Invisible Hand
思路:wc,我以前这么吊的吗?我现在根本看不懂我以前写的代码,这题我甚至是赛事 A 的,题解都是二分,就我不是?思路新奇。说实话这个思路确实好。题解
D - Count Bracket Sequences
思路:看不懂赛时代码了 qwq。记录一下我 dp 的状态,以免以后忘了。
\(dp_{i,j}\) 表示前 \(i\) 个字符中有 \(j\) 个左括号。
E - Tangency of Cuboids
思路:看到坐标最大为 \(100\),所以考虑枚举每个 \(1 \times 1 \times 1\) 的小正方体,看旁边有没有其他的与它所示长方体不同的小正方体。\(O(100^3 \ log N)\) 可过。
Beginner Contest 301(更新中)
A - Overall Winner
思路:
不会有人红题不会吧?字符串处理,依次遍历即可。要注意胜负相等的情况。
B - Fill the Gaps
思路:依次遍历处理,如遇绝对值差大于 \(1\),循环插入即可。
C - AtCoder Cards
思路:记录两个字符串中不同字符出现的数量(包括字符
@)。判断:如果字符不为a、t、c、o、d、e、r中的一个,失败;如果剩余@不够来替换,失败。
D - Bitmask
思路:由于 \(2^n > 2^{n-1}+...+2^1\),所以肯定优先选择更高位的,之后依次向低位枚举即可。
E - Pac-Takahashi
警钟长鸣:数组大小开反了,调了 2 天!!!
思路:发现糖果数量至多 \(18\) 个,算上起点和终点一共 \(20\) 个,非常的少。所以我们先可以 BFS 暴力枚举他们之间的距离。最后在使用一个状压 DP 即可。
警钟长鸣 \(\times 2\):数组大小开反了,调了 2 天!!!!
Beginner Contest 279(更新中)
A - wwwvvvvvv
无
B - LOOKUP
无
C - RANDOM
思路:统计每列
#(或.)数量,看是否可以数量相同。
D - Freefall
思路:显然三分。我的早期三分代码,太清新了!
E - Cheating Amidakuji
思路:先求出交换完成后每个数的位置,然后发现如果第 \(i\) 次交换被
去世删除了,只需要看是否会交换到 \(1\) 这个数。如果没有,正常输出。如果有,无非是 \(b_{a_{i}}\) 和 \(b_{a_{i}+1}\) 两种情况 (我知道我说的很不清楚,详见代码)。
Beginner Contest 278(更新中)
A - Shift
无
B - Misjudge the Time
无
C - FF
用 set 即可,\(O(N\log_{}{N})\)。
D - All Assign Point Add
思路:肯定不能直接将所有都赋为一值,所以需要一个 vis 来记录是第几个操作 \(1\),然后判断输出即可。
E - Grid Filling
警钟长鸣:复制代码片段相同的代码时,一定记得改所有的变量!!!
思路:水题。\(H,W\) 都很小,每次 \(O(N^3)\) 转移。 \(O(N^3)\) 过即可。
Beginner Contest 273(更新中)
A - A Recursive Function
思路:
B - Broken Rounding
思路:
C - (K+1)-th Largest Number
思路:
D - LRUD Instructions
思路:
E - Notebook
思路:
Beginner Contest 261(更新中)
A - Intersection
思路:染两点之间的间隔。
B - Tournament Result
思路:for 循环中 if 判断。
C - NewFolder(1)
思路:map 简单应用,不过可以看看我以前的做法,是 hash。
D - Flipping and Bonus
思路:简单 dp。
E - Many Operations
思路:拆位后 dp。
F - Sorting Color Balls
思路:容易发现操作顺序不影响结果,所以只要没有重复操作即可。考虑点对 \((i,j),i<j\) 对答案的贡献,如果 \(C_i!=C_j\) 且 \(X_i>X_j\) 则必然会产生一次交换。那么就将题目转换为一道求逆序点对的题。先求出整个序列关于 \(X\) 的逆序对,再减去 \(C_i=C_j\) 的逆序对(因为本身不产生贡献)。
Beginner Contest 243(更新中)
A - Shampoo
思路:while 循环简单枚举。
B - Hit and Blow
思路:双层 for 嵌套枚举。
C - Collision 2
思路:判断是否存在:两个在同一行的点是否左边的往右,右边的往左。
D - Moves on Binary Tree
思路:不用栈,考虑最大不会超过 1e18,所以超出记录超出次数即可。
F - Lottery
思路:简单概率 dp。
考虑 \(dp_{i,j,k}\) 表示只考虑前 \(i\) 个奖品,抽了 \(j\) 次,有 \(p\) 种不同奖品的的概率。
转移即为:\(dp_{i,j,k}=dp_{i,j,k}+dp_{i-1,j-1,k-r}\times\frac{{a_i}^r}{r!}+dp_{i-1,j-1,k-r}\)。
G - Sqrt
思路:通过一步一步优化得:\(dp_n=\sum_{i=1}^{\sqrt{\sqrt{n}}}(\sqrt{n}-i^2+1)dp_i\)。
Beginner Contest 240(更新中)
A - Edge Checker
思路:判断是否相邻即可,注意 \(1\) 和 \(10\)。
B - Count Distinct Integers
思路:简单 map 即可。
C - Jumping Takahashi
思路:简单 bitset 即可。
D - Strange Balls
思路:简单栈即可。
E - Ranges on Tree
思路:简单搜索即可,叶子节点赋值为 \((i,i)\)。
F - Sum Sum Max
思路:两个前缀和,最大值有可能在一段的开始或结束。当然,也有可能在中间(如果前面的前缀和仍然大于 \(0\),这样值就仍然会增加)。
G - Teleporting Takahashi
思路:题解
Beginner Contest 223(更新中)
A - Exact Price
思路:if 即可。
B - String Shifting
思路:把所有字符串扔进 vector,排序即可。
C - Doukasen
思路:左边、右边分别为 \(i,j\),显然不能模拟每分钟,所以模拟每一根。时间为 \(O(N)\)。
D - Restricted Permutation
思路:拓扑图,每次去掉入读为 \(0\) 的节点即可。
E - Placing Rectangles
思路:发现只会有这几种情况:1. 全部横着放 2. 一个横着两个竖着 (交换长宽也一样)。
Beginner Contest 221(更新中)
G - Jumping sequence
思路:见题解。
Beginner Contest 219(更新中)
F - Cleaning Robot
思路:题解
G - Propagation
思路:赛时 AC 力!见题解。
Beginner Contest 191(更新中)
A - Vanishing Pitch
思路:简单 if 判断。
B - Remove It
思路:for 循环中 if 判断相同。
C - Digital Graffiti
思路:很傻的做法,把所有外围的边弄出来,dfs 一圈就可以了。
D - Circle Lattice Points
思路:利用 \(x^2+y^2=r^2\) 的公式即可。
E - Come Back Quickly
思路:简单 djk。

浙公网安备 33010602011771号