随笔分类 -  Codeforces

摘要:题目链接 组长分了个需求,但是没信心能写好,看来又是自闭的一周。不过好在终于可以不是纯带薪自习了。 心路历程 昨晚看完题就猜是SCC然后乱搞,也猜对了。 好像纯DFS也能写。 思路 首先,通过一次DFS可以确定答案是0,1,2的点。就节点可以至多经过两次,这样复杂度还是线性的,且能确定一个点是否可达 阅读全文
posted @ 2021-07-12 00:29 _Backl1ght 阅读(87) 评论(0) 推荐(0) 编辑
摘要:周六真的是太快乐了。 写完F差不多到零点了,大概猜G是建出SCC然后乱搞之类的题目吧。 但是明天上班,怕睡过头上班迟到,就先休息了。 A. Shortest Path with Obstacle 三点不共线的时候,就是A和B之间的曼哈顿距离。因为最短路径不止一条,所以不会受F影响。 三点共线的时候就 阅读全文
posted @ 2021-07-11 10:56 _Backl1ght 阅读(121) 评论(0) 推荐(0) 编辑
摘要:题目链接 记$g(i) = \operatorname(1, 2, \dots, i), h(i) = \lfloor \dfrac{g(i)} \rfloor$。 易得$f(k) = i$的$k$的个数为$h(i) - h(i - 1)$。 然后叠加相消后可得:\(\sum_{i = 1}^n f 阅读全文
posted @ 2021-07-06 09:50 _Backl1ght 阅读(55) 评论(0) 推荐(0) 编辑
摘要:题目链接 AC代码 每次看到形如$a_i + a_j = i + j$这种公式,总想着把带$i$的划到一边,带$j$的划到一遍,然后map乱搞。但是这题是$a_i \cdot a_j = i + j$,这样做并不行。 注意到一个非常重要的条件,就是$a$中元素是不重复的。所以可以用一个数组$p$记录 阅读全文
posted @ 2021-06-27 13:55 _Backl1ght 阅读(83) 评论(0) 推荐(0) 编辑
摘要:A. Contest Start 分类讨论一下: \(t < x\): 不会有任何冲突,答案为$0$。 \(t = x\): 除了第一个人,其余都有1的冲突,答案为$n - 1$。 \(t > x\): 冲突数依次为$0, 1, 2, \dots, d - 1, d, d, d, d, \dots$ 阅读全文
posted @ 2021-06-21 10:00 _Backl1ght 阅读(120) 评论(0) 推荐(0) 编辑
摘要:A. Stone Game 注意$a_i$是互不相同的,所以可以直接得到两个极值的位置。 然后最优的方案必定是一下三种中的一种: 仅从左侧删除,直到删掉两个极值 仅从右侧删除,直到删掉两个极值 两边都删除,每边一删掉一个极值就停 都计算一下取最小值即为答案。 B. Friends and Candi 阅读全文
posted @ 2021-06-11 01:26 _Backl1ght 阅读(160) 评论(0) 推荐(0) 编辑
摘要:A. Fair Playoff 模拟。 B. Array Reodering 贪心。 对于$a_i$,统计$1 \le j \le n, j \ne i$且$\gcd(a_i, 2a_j) > 1$的个数,作为$b_i$。 $b_i$越大,越往前放。 C. Unstable String 对于偶数下 阅读全文
posted @ 2021-06-05 01:50 _Backl1ght 阅读(253) 评论(0) 推荐(1) 编辑
摘要:A. Do Not Be Distracted! 用一个数组保存一道题上一次出现的下标。枚举位置,如果存在位置$i$,使得$s_i$非首次出现且上一次出现的下标不是$i-1$则NO,反之YES。 B. Ordinary Numbers 满足条件的数其实非常少,且容易生成,所以直接预处理出所有满足条件 阅读全文
posted @ 2021-05-06 13:21 _Backl1ght 阅读(106) 评论(0) 推荐(0) 编辑
摘要:A. Spy Detected! 对于$i \in [2, n -1]$,当且仅当$a_i \ne a_i - 1$且$a_i \ne a_{i + 1}$时,$i$为最终答案。 否则,答案可能是$1$或者$n$,将$a_1$和$a_n$与$a_2$比较看那个与$a_2$相同,另一个就是答案。 B. 阅读全文
posted @ 2021-04-11 01:24 _Backl1ght 阅读(191) 评论(0) 推荐(0) 编辑
摘要:A. Déjà Vu 根据回文串的定义,对于字符串$s_{1 \dots n}$,只要存在$s_ \ne s_{n - i + 1}$,那么$s$就不是回文串。 遍历$s$,若存在非a的字符,那么在对应位置插入a就可以。反之,则无解。 B. Flip the Bits 由于修改是前缀修改,且不会改变 阅读全文
posted @ 2021-04-04 15:24 _Backl1ght 阅读(152) 评论(0) 推荐(0) 编辑
摘要:AC代码 A. Strange Table 不妨假设表中的数字从$0$开始,且行列也从$0$开始。 此时数字$x$在按列排时位于$(\lfloor \frac \rfloor, x \text n)$。 而案行排时,$(i, j)$上的数字为$i + j * m$。 最后再转换回来就行了。 B. P 阅读全文
posted @ 2021-03-26 18:56 _Backl1ght 阅读(263) 评论(0) 推荐(1) 编辑
摘要:AC代码 A. Puzzle From the Future 令$a_1 = 1$,可以保证$c$没有前导零且$c_1$尽可能大。 此时,$d$的位数越多必定比$d$位数小的大,通过保证$c_i \ne c_{i +1}$即可确保$d$有$n$位。 在保证$c_i \ge c_{i +1}$时,前面 阅读全文
posted @ 2021-01-20 02:07 _Backl1ght 阅读(79) 评论(0) 推荐(0) 编辑
摘要:AC代码 A. Cards for Friends 记$t$为当前能分的份数。 如果满足条件就不断将$w$除$2$,或者将$h$除$2$,每次除$2$的时候,$t$可以变为$[t + 1, 2t]$中的任意一个数。 即假设最大能达到的$t$为$T$,那么如果$T \ge n$则YES,反之则NO。 阅读全文
posted @ 2021-01-05 01:03 _Backl1ght 阅读(166) 评论(0) 推荐(0) 编辑
摘要:AC代码 A. Regular Bracket Sequence 注意到题目保证只有一个左括号和一个右括号。 所以只有字符串长度为奇数,或者$s_1$是)或者$s_n$是(时,才无解。 B. Red and Blue 因为$r$和$b$中的元素时保留原数组中的顺序的。而且题目只关注前缀和的最大值,而 阅读全文
posted @ 2020-12-29 01:03 _Backl1ght 阅读(209) 评论(0) 推荐(0) 编辑
摘要:题意 给出一个数组$a$,输出满足$\min(b_1, b_2) \le \min(b_2, b_3) \le \min(b_3, b_4) \dots$的子序列$b$的最长长度。 解法 观察 首先想到LIS,然后这题和LIS的区别就是,两个LIS的元素中间可以插入一个更大的元素。 然后这个性质转化 阅读全文
posted @ 2020-12-26 14:20 _Backl1ght 阅读(202) 评论(0) 推荐(0) 编辑
摘要:题意 给定$n$个点$p_i=(x_i, y_i)$,第$i$个点初始时朝向$(tx_i, ty_i)$。每个点的朝向以相同的角速度转动,转满一圈停止。 点$A$和点$B$对视,即$B$在点$A$朝向的方向上,且$A$在点$B$朝向的方向上。两点中间有其他点不会影响对视。 问满足某一时刻两点对视的点 阅读全文
posted @ 2020-12-26 12:29 _Backl1ght 阅读(198) 评论(0) 推荐(0) 编辑
摘要:题意 给定数组$a$和$b$,长度分别为$n$和$m$。对于每一个$b_j$,输出$GCD(a_1 + b_j, a_2 + b_j, ..., a_n + b_j)$。 解法 经典区间GCD。 首先根据GCD的性质,可以得出$GCD(a, b, c) = GCD(a, b - a, c - b)$ 阅读全文
posted @ 2020-12-19 23:46 _Backl1ght 阅读(158) 评论(0) 推荐(0) 编辑
摘要:AC代码 A. Dungeon 记每7次攻击为一轮,那么如果要满足给定条件,那么必须要有$a + b + c = 0 \text{ mod 9} $。 其次,假设结束时经历了$t = \frac{a + b + c}{9}$轮,则必须要有$t \ge min(a, b, c)$。 满足以上两个要求则 阅读全文
posted @ 2020-12-18 01:23 _Backl1ght 阅读(127) 评论(0) 推荐(0) 编辑
摘要:AC代码 A. Favorite Sequence 搞两个指针分别指向头尾,然后模拟每次往内移动,依次读取指针指向的元素。 B. Last Year's Substring 枚举头部匹配几个字符,剩下的就只用尾部匹配,模拟一下完事。 C. Unique Number 贪心,从个位数开始优先使用值大的 阅读全文
posted @ 2020-12-16 00:47 _Backl1ght 阅读(103) 评论(0) 推荐(0) 编辑
摘要:AC代码 A. Special Permutation 整体循环右移一位后输出即可。 B. Unique Bid Auction 用一个map统计信息,具体就是值为$key$的元素的出现次数为$value$。 再用一个map统计信息,具体就是值为$key$的元素的最后一次出现在$value$。 然后 阅读全文
posted @ 2020-11-25 00:44 _Backl1ght 阅读(181) 评论(0) 推荐(0) 编辑