window.cnblogsConfig = {//可以放多张照片,应该是在每一个博文上面的图片,如果是多张的话,那么就随机换的。 homeTopImg: [ "https://cdn.luogu.com.cn/upload/image_hosting/clcd8ydf.png", "https://cdn.luogu.com.cn/upload/image_hosting/clcd8ydf.png" ], }

Atcoder abc 复盘(更新中)

+313 219

补:+191 229 212 211 223 243

注:该为 AtCoder Beginner Contest 复盘合计,可以直接点击右侧查看,目前还有一些在更新中。由比赛编号降序排序。


Beginner Contest 335(更新中)

跳转比赛链接

A - 202< s >3< /s >

思路:立意很好的一道题,惊艳到我了。

AC 代码

B - Tetrahedral Number

思路:

AC 代码

C - Loong Tracking

思路:

AC 代码

D - Loong and Takahashi

思路:

AC 代码

E - Non-Decreasing Colorful Path

F - Hop Sugoroku

思路:第一次赛时AC F题,太吊啦!!!

AC 代码


Beginner Contest 333(更新中)

跳转比赛链接

A - Three Threes

思路:for 循环。

AC 代码

B - Pentagon

思路:对比差值即可。

AC 代码

C - Repunit Trio

思路:预处理,之后直接输出即可。

AC 代码

D - Erase Leaves

思路:找顶点 \(1\) 所有子节点删除所需的数量总和,再删除最多需要删除的那个子节点数量。

AC 代码

E - Takahashi Quest

思路:贪心,每次拿从最后的瓶子开始拿。

AC 代码


Beginner Contest 330(更新中)

跳转比赛链接

A - Counting Passes

B - Minimize Abs 1

C - Minimize Abs 2

D - Counting Ls

思路:

AC 代码

E - Mex and Update

思路:

AC 代码


Beginner Contest 312(更新中)

跳转比赛链接

A - Chord

思路:if 枚举。

AC 代码

B - TaK Code

思路:对每个 \(9 \times 9\) 的矩阵依次枚举是否是二维码。

AC 代码

C - Invisible Hand

思路:wc,我以前这么吊的吗?我现在根本看不懂我以前写的代码,这题我甚至是赛事 A 的,题解都是二分,就我不是?思路新奇。说实话这个思路确实好。题解

AC 代码

D - Count Bracket Sequences

思路:看不懂赛时代码了 qwq。记录一下我 dp 的状态,以免以后忘了。
\(dp_{i,j}\) 表示前 \(i\) 个字符中有 \(j\) 个左括号。

AC 代码

E - Tangency of Cuboids

思路:看到坐标最大为 \(100\),所以考虑枚举每个 \(1 \times 1 \times 1\) 的小正方体,看旁边有没有其他的与它所示长方体不同的小正方体。\(O(100^3 \ log N)\) 可过。

AC 代码


Beginner Contest 301(更新中)

跳转比赛链接

A - Overall Winner

思路:不会有人红题不会吧?字符串处理,依次遍历即可。要注意胜负相等的情况。

AC 代码

B - Fill the Gaps

思路:依次遍历处理,如遇绝对值差大于 \(1\),循环插入即可。

AC 代码

C - AtCoder Cards

思路:记录两个字符串中不同字符出现的数量(包括字符 @)。判断:如果字符不为 atcoder 中的一个,失败;如果剩余 @ 不够来替换,失败。

AC 代码

D - Bitmask

思路:由于 \(2^n > 2^{n-1}+...+2^1\),所以肯定优先选择更高位的,之后依次向低位枚举即可。

AC 代码

E - Pac-Takahashi

警钟长鸣:数组大小开反了,调了 2 天!!!

思路:发现糖果数量至多 \(18\) 个,算上起点和终点一共 \(20\) 个,非常的少。所以我们先可以 BFS 暴力枚举他们之间的距离。最后在使用一个状压 DP 即可。

警钟长鸣 \(\times 2\):数组大小开反了,调了 2 天!!!!

AC 代码


Beginner Contest 279(更新中)

跳转比赛链接

A - wwwvvvvvv

B - LOOKUP

C - RANDOM

思路:统计每列 #(或 .)数量,看是否可以数量相同。

AC 代码

D - Freefall

思路:显然三分。我的早期三分代码,太清新了!

AC 代码

E - Cheating Amidakuji

思路:先求出交换完成后每个数的位置,然后发现如果第 \(i\) 次交换被去世删除了,只需要看是否会交换到 \(1\) 这个数。如果没有,正常输出。如果有,无非是 \(b_{a_{i}}\)\(b_{a_{i}+1}\) 两种情况 (我知道我说的很不清楚,详见代码)。

AC 代码


Beginner Contest 278(更新中)

跳转比赛链接

A - Shift

B - Misjudge the Time

C - FF

用 set 即可,\(O(N\log_{}{N})\)

AC 代码

D - All Assign Point Add

思路:肯定不能直接将所有都赋为一值,所以需要一个 vis 来记录是第几个操作 \(1\),然后判断输出即可。

AC 代码

E - Grid Filling

警钟长鸣:复制代码片段相同的代码时,一定记得改所有的变量!!!

思路:水题。\(H,W\) 都很小,每次 \(O(N^3)\) 转移。 \(O(N^3)\) 过即可。

AC 代码


Beginner Contest 273(更新中)

跳转比赛链接

A - A Recursive Function

思路:

AC 代码

B - Broken Rounding

思路:

AC 代码

C - (K+1)-th Largest Number

思路:

AC 代码

D - LRUD Instructions

思路:

AC 代码

E - Notebook

思路:

AC 代码


Beginner Contest 261(更新中)

跳转比赛链接

A - Intersection

思路:染两点之间的间隔。

AC 代码

B - Tournament Result

思路:for 循环中 if 判断。

AC 代码

C - NewFolder(1)

思路:map 简单应用,不过可以看看我以前的做法,是 hash。

AC 代码

D - Flipping and Bonus

思路:简单 dp。

AC 代码

E - Many Operations

思路:拆位后 dp。

AC 代码

F - Sorting Color Balls

思路:容易发现操作顺序不影响结果,所以只要没有重复操作即可。考虑点对 \((i,j),i<j\) 对答案的贡献,如果 \(C_i!=C_j\)\(X_i>X_j\) 则必然会产生一次交换。那么就将题目转换为一道求逆序点对的题。先求出整个序列关于 \(X\) 的逆序对,再减去 \(C_i=C_j\) 的逆序对(因为本身不产生贡献)。

AC 代码


Beginner Contest 243(更新中)

跳转比赛链接

A - Shampoo

思路:while 循环简单枚举。

AC 代码

B - Hit and Blow

思路:双层 for 嵌套枚举。

AC 代码

C - Collision 2

思路:判断是否存在:两个在同一行的点是否左边的往右,右边的往左。

AC 代码

D - Moves on Binary Tree

思路:不用栈,考虑最大不会超过 1e18,所以超出记录超出次数即可。

AC 代码

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}\)

AC 代码

G - Sqrt

思路:通过一步一步优化得:\(dp_n=\sum_{i=1}^{\sqrt{\sqrt{n}}}(\sqrt{n}-i^2+1)dp_i\)

AC 代码


Beginner Contest 240(更新中)

跳转比赛链接

A - Edge Checker

思路:判断是否相邻即可,注意 \(1\)\(10\)

AC 代码

B - Count Distinct Integers

思路:简单 map 即可。

AC 代码

C - Jumping Takahashi

思路:简单 bitset 即可。

AC 代码

D - Strange Balls

思路:简单栈即可。

AC 代码

E - Ranges on Tree

思路:简单搜索即可,叶子节点赋值为 \((i,i)\)

AC 代码

F - Sum Sum Max

思路:两个前缀和,最大值有可能在一段的开始或结束。当然,也有可能在中间(如果前面的前缀和仍然大于 \(0\),这样值就仍然会增加)。

AC 代码

G - Teleporting Takahashi

思路:题解

AC 代码


Beginner Contest 223(更新中)

跳转比赛链接

A - Exact Price

思路:if 即可。

AC 代码

B - String Shifting

思路:把所有字符串扔进 vector,排序即可。

AC 代码

C - Doukasen

思路:左边、右边分别为 \(i,j\),显然不能模拟每分钟,所以模拟每一根。时间为 \(O(N)\)

AC 代码

D - Restricted Permutation

思路:拓扑图,每次去掉入读为 \(0\) 的节点即可。

AC 代码

E - Placing Rectangles

思路:发现只会有这几种情况:1. 全部横着放 2. 一个横着两个竖着 (交换长宽也一样)。

AC 代码


Beginner Contest 221(更新中)

跳转比赛链接

G - Jumping sequence

思路:见题解

AC 代码


Beginner Contest 219(更新中)

跳转比赛链接

F - Cleaning Robot

思路:题解

AC 代码

G - Propagation

思路:赛时 AC 力!见题解


Beginner Contest 191(更新中)

跳转比赛链接

A - Vanishing Pitch

思路:简单 if 判断。

AC 代码

B - Remove It

思路:for 循环中 if 判断相同。

AC 代码

C - Digital Graffiti

思路:很傻的做法,把所有外围的边弄出来,dfs 一圈就可以了。

AC 代码

D - Circle Lattice Points

思路:利用 \(x^2+y^2=r^2\) 的公式即可。

AC 代码

E - Come Back Quickly

思路:简单 djk。

AC 代码


posted @ 2023-12-10 21:39  ziyistudy  阅读(185)  评论(0)    收藏  举报