Codeforces
文章平均质量分 76
Codeforces解题报告
会做饭的好同学
遇多少风浪,心不再摇晃
展开
-
Codeforces 1451C String Equality(Greedy)
Description: 题目大意:给出两个字符串 a 和字符串 b,要求 a 变成 b,有以下两种操作: 选择下标为 i(1≤i≤n−1)(1 \leq i \leq n-1)(1≤i≤n−1),交换 ai 和 ai+1 选择下标为 i(1≤i≤n−k+1)(1 \leq i \leq n-k+1)(1≤i≤n−k+1),如果 ai,ai+1,…,ai+k-1相同,替换为下一个字母。 如果 a 能转换为 b,输出 Yes,否则输出 No。 解题思路: 算法标签:贪心 显然字符串每个字符可以到达字符串的原创 2020-12-12 21:09:18 · 134 阅读 · 0 评论 -
Codeforces 1455B Jumps(Constructive algorithms)
Description: 题目大意:你站在 X 轴上,你想去 x 点。你有两种跳法,假设你在 y 点,跳第 k 次: 可以跳到 y+k 点 可以跳到 y-1 点 你跳到 x 点需要最少多少次? 解题思路: 算法标签:构造,math 当 x 点大于当前点 pos,选择 +k 操作,直到 pos = 1 + 2 + 3 + … + steps = steps(1+steps)2≥x\frac{steps(1 + steps)}{2} \geq x2steps(1+steps)≥x,显然 0≤pos−x&l原创 2020-12-11 17:43:09 · 148 阅读 · 0 评论 -
Codeforces 1452B Toy Blocks(Greedy)
Description: 题目大意:有 n 个盒子,第 i 个盒子有 ai个木块,有两步操作: 选择一个盒子 将选中的第 i 个盒子中的所有木块放多其他所有盒子中 希望将 n-1 个盒子中的木块数量都相等,不能从其他盒子拿出木块,要求放入最小的额外木块,使得无论选择哪一个盒子都能使 n-1 个盒子的木块数量相同。 解题思路: 算法标签:贪心 首先,如果 n-1 个盒子木块数相同,那么至少能被总共木块数 sum 整除。所以其他盒子中的木块数至少为 [sumn−1\frac{sum}{n-1}n−1sum原创 2020-12-10 20:48:27 · 238 阅读 · 0 评论 -
Codeforces 1452A Robot Program(Math)
Description: 题目大意:有一个无限的二维平面。一个 robot 在(0,0)的位置,可以上下左右移动,也可以选择呆在原地不动,给出一个(x,y)求出到该位置的最小步数,要求每一步不能和上一步动作相同。 解题思路: 算法标签:Math 一看题目,二话不说想BFS一下。仔细分析发现 x>0,y>0,所以 robot 只选择向上向右走,或者呆在原地不动。如果 x = y时,显然要走 x+y 步(向上向右交替走就好了)。但是 x ≠\neq= y 时,结果显然不正确。取 minn = m原创 2020-12-10 19:35:30 · 166 阅读 · 0 评论 -
Codeforces 1453B Suffix Operations( Constructive algorithms)
Description: 题目大意:Gildong 有一个 n 个数字的数组,有两种操作: 给第 i 个和后面的所有数字加一 给第 i 个和后面的所有数字减一 他想要所有数字相等,要求我们可以改变任何一个数字的值,求 Gildong 操作的最小次数 解题思路: 算法标签:构造算法 显然,不需要对第一个元素有任何操作,因为所有元素的相对值都未发生改变。从第二个元素开始,需要操作 abs(a2 - a1) 次才能使得 a2 = a1,相同操作,Gildong 需要操作 ∑i=2n(a i 原创 2020-12-08 21:03:56 · 148 阅读 · 0 评论 -
Codeforces 1453A Cancel the Trains(模拟)
Description: 题目大意:小镇有一个铁路系统,有100条铁路从底向上,100条铁路从左到右,所有的列车速度相同。如下图: 当两条列车在同一时刻同一地点就会相撞,要求找出取消最少的列车计划来避免相撞。 解题思路: 算法标签:模拟 从左到右的列车和从底向上的列车在 T 时刻时候的坐标分别为(i,T)和(T,i)(i,T)和(T,i)(i,T)和(T,i),当且仅当i=T,j=T,即i=ji = T,j = T,即 i = ji=T,j=T,即i=j的时候,两个列车才能相撞,所以只有列车号相同才能相原创 2020-12-08 19:39:07 · 166 阅读 · 0 评论 -
Codeforces 1451B Non-Substring Subsequence(贪心)
Description: 题目大意:给定一个长度为 n 的字符串,q 次询问,每次询问在字符串中是否存在着s[l,…r]相同的子串,要求字串不连续且在原串的出现次序未发生改变。 解题思路: 算法标签:贪心 假设如果在 s[l] 之前未出现与 s[l] 相同的字符,同时在 s[r] 之后也未出现与它相同的字符,那么只有它自己与它相等(废话),与题意矛盾。所以只有在 l 之前便出现与 s[l] 相同的字符,或者在 r 之后出现与 s[r] 相同的字符才会出现 good 字串。 代码: // TSWorld #i原创 2020-12-04 20:19:35 · 149 阅读 · 0 评论 -
Codeforces 1454C Sequence Transformation(贪心)
Description: 题目大意:给定一个长度为n的序列,选择一个其中的元素 x,你可以删除不含有元素 x 的连续序列,要求最终序列中指剩下元素 x。 解题思路: 算法标签:贪心 消除连续的子序列,例如[1,2,2,3,3,4]为[1,2,3,4],然后统计每个元素出现的次数,第一个出现的元素前面没有元素,最后一个出现的元素后面没有元素,所以都要减一,最后求得最小的出现次数即为答案。 代码: // TSWorld #include <iostream> #include <cstdlib原创 2020-12-01 20:21:41 · 564 阅读 · 2 评论 -
Codeforces 1454B Unique Bid Auction(模拟)
Description: 题目大意:找到一个序列中唯一且是最小的那个数的下标。(感叹我的语言描述真是越来越精炼了) 解题思路: 算法标签:模拟 记录每个数字出现的次数以及其下标,然后从1开始寻找,第一个找到的数字的下标就是答案。(没什么难度,只是不想做英语阅读,用这个提升英语能力!) 代码: // TSWorld #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio>原创 2020-11-30 20:32:52 · 306 阅读 · 1 评论 -
Codeforces 1454A Special Permutation(DFS)
Description: 题目大意:找一个特殊的排列,数字只含有 1~n,且唯一,要求下标和数字不同,结果不唯一。 解题思路: 算法标签:DFS 简单DFS一下,标记使用过的数字即可。 代码: // TSWorld #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #include <cstring> #include <vector>原创 2020-11-30 19:57:58 · 183 阅读 · 0 评论