
Atcoder
文章平均质量分 77
Owen_Q
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Denso Create Programming Contest 2025(AtCoder Beginner Contest 413)
这也是水题,用两个数组分别记录队列重复的数量和重复值,出队的时候修改每一位的剩余值并求和就可以了,细节点注意一下变量值的维护,避免死循环,真的离谱,还能犯这种错。从小到大,每次对比相邻两个串进行合并,判断最小值在哪个串内,若在前串则不用动,若在后串,则分别将两串翻转后,合并,再将合并后的串翻转。这题我的思路就是先按照绝对值排序,排完后,求相邻两数的公比,并判别符号,最后特殊注意一下,所有数绝对值都一样的场景,要求要么符号都一样,要么不同符号差最大为1。段,每段内可以进行翻转,求翻转后的最小串。原创 2025-07-06 21:39:33 · 953 阅读 · 0 评论 -
AtCoder Beginner Contest 409
第二发针对在数组中的场景,发现a[i]=i+1的边界条件未被考虑,第三发针对找不到的场景,应该直接将结果设置为数组大小,特别是第三发wa,我深知考虑到了这种case,但却莫名其妙的想当然认为0就是这种case的正确结果,也是不理解脑子一团混乱。这题其实脑子也糊了一下,一开始只记录每个点位的位置,但没统计每个位置的数量,导致怎么都出不来结果,果然还是受第二题卡顿的影响了。思路:旋转字符串,寻找字符串的一个子串,将其整体想坐旋转一位,求一个最佳旋转方案,使得旋转后的字典序最小。最后手动模拟一下字符串旋转即可。原创 2025-06-12 11:11:34 · 445 阅读 · 0 评论 -
AtCoder Beginner Contest 408
重新整理,其实有分全0(0),先0后1(01),先1后0(10),全1(1)和先0后1最后0(010)这五种方案。由于向后递归,因此过程中其实我们不用关注前缀0的数量,于是,全1和先0后1可以合并为包含部分0且1结尾([0]1),先1后0和先0后1最后0可合并为包含部分0后特定1加特定0([0]10)。首先想到dp,按位dp,分全0,先0后1,先1后0和全1四种状态进行转移。之后又想到先将字符串变为全0或者全1,然后从边开始加数,但此时重新审题突然发现,其实先0后1最后0这种方案也是满足条件的。原创 2025-06-10 18:25:10 · 953 阅读 · 0 评论 -
AtCoder Beginner Contest 407
思路:给定一个数组,要求用括号串覆盖数组,最终将所有左括号覆盖除累加求最大值。其实说白了,引入括号串就是为了利用栈的性质,即要保证每一位顺序做选择时,累加的数一定要比丢弃的数多。看这么小的数据量,直接枚举判断即可,最后要注意一下,由于概率判定精确到了小数点后九位,所以一定要拉长最终输出的位数。终于涨分了,这算是这段时间来第一次涨分,之前一直都再降,看来终于算是找回了一点点当年的感觉了。,就是前面的数尽可能累加,后面的数全都丢失。最近的正整数,由于是正整数,就简单了直接求两边的数对比一下即可。原创 2025-05-26 11:31:09 · 529 阅读 · 0 评论 -
AtCoder Beginner Contest 403
没什么难度,但却因为没读清题目,要求输出Yes/No,结果输出了YES/NO,导致了三次无意义的WA,实属可惜。最后整理一下,其实并查集的主要就是为了优化连通集,但是这题的数组最大值只有1e6,因此可以直接用计数数组而放弃并查集优化,这样会使代码简洁一些。思路:给定一个数组a(2e5的数据量,最大值为1e6)和一个特定的数d,要求删除最少得数量是的数组内所有数的距离都不为d。题意倒是很简单,首先想到的将距离为d的数通过并查集连接,再通过遍历每一个连通集,进行间隔删除,最后找出最小的删除方案。原创 2025-05-13 00:31:51 · 375 阅读 · 0 评论 -
AtCoder Beginner Contest 402
再想想,其实每道题的最终作答顺序并不影响分数,而做对与否才真正影响分数(假设钱数能够答对对应的题目,如果钱不够导致后面的题无法做最终也将会体现在题目未达对上)。而不难发现这一题的n给的特别小,只有8,因此想到可以用状压dp,将每道题做对和做错的状态进行枚举压缩。解法也很简单,反向维护一下某个食材可能影响的食物,当某个人喜欢上某个食材的时候,更新一下所影响食物还剩余需要喜欢的食材数量,即可得到当前所喜欢的食材数量。思路:N个题,每题s分,消耗c金币,答对概率p,拥有总金币数量X,求最高分数的期望。原创 2025-05-11 00:52:22 · 838 阅读 · 0 评论 -
AtCoder Beginner Contest 401
每次针对下个节点,再将下个节点加回,并将下个节点的后续节点删掉即可。首先第一步,不难发现,如果每次要遍历的节点在待删除列表里,那么其一定是可以连通的,就不需要再进行连通性判断了。此外,由于待删除列表存在很多添加和删除的操作,因此用数组来维护判断节点是否需要删除,然后专门记个数即可。最后一点剪枝就是判断节点联通性的时候,当某个节点判断不连通时,可以短路掉后续要判断的节点,避免重复无效判定。思路:图论题,给定一个无向图,针对每一个有序节点k,判断需要至少删除多少个节点,能使节点1仅可达前k个节点。原创 2025-04-13 21:28:58 · 894 阅读 · 0 评论 -
AtCoder Grand Contest 039
再战atcoder,误入grand局,赛后才意识到。偶然间发现,一年多前自己也是通过grand局狂涨800+分,甚是巧合A - Connection and Disconnection思路:这题就是一个简单的字符串计算问题,子串复制多次后变换最少元素消除连续相同元素。对于连续元素,其实只需要向下取整相间消除即可完成,最后单独统计一下首尾,处理掉复制连接处,再考虑一下所有元素均相同的情况即可...原创 2019-10-06 00:35:10 · 474 阅读 · 0 评论