随笔分类 -  codeforces

摘要:D. Absolute Sorting 思路: 如果a[i] >= a[i-1],那么我们最大可以减去(a[i] + a[i - 1]) / 2,这样减完依旧是满足a[i] >= a[i - 1]的。因此我们可以把所有满足a[i]>=a[i - 1]的答案取一个交集,即取一个最小值。 如果a[i]< 阅读全文
posted @ 2022-12-28 14:00 彦辰kkkkk 阅读(77) 评论(0) 推荐(0)
摘要:A. Everyone Loves to Sleep 思路: 把所有的时间都换成分钟,先记录一下当前的时间,然后依次读入每个闹钟的时间,其中每个闹钟的时间减去现在的时间差值最小的就是答案,注意如果差值小于0说明到第二天了,就要加上24小时 #include <bits/stdc++.h> using 阅读全文
posted @ 2022-08-04 15:02 彦辰kkkkk 阅读(82) 评论(0) 推荐(0)
摘要:A. Optimal Path 思路: 最小就是走第一行和最后一列 #include <bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<int, int> PII; const int N = 200010 阅读全文
posted @ 2022-07-31 13:19 彦辰kkkkk 阅读(39) 评论(0) 推荐(0)
摘要:A. XOR Mixup 思路: 因为X是n-1个数的异或,所以这n个数异或起来等于0。所以任意一个数都是其他剩下的数异或起来的值 #include <bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<int 阅读全文
posted @ 2022-07-30 14:59 彦辰kkkkk 阅读(46) 评论(0) 推荐(0)
摘要:C. Train and Queries 思路: 开一个map记录一个数字出现的最小坐标和最大坐标 #include <bits/stdc++.h> using namespace std; typedef pair<int, int> PII; const int N = 200010; int 阅读全文
posted @ 2022-07-28 14:23 彦辰kkkkk 阅读(41) 评论(0) 推荐(0)
摘要:A. YES or YES? 思路:algorithm库里有一个transform函数可以将字符串转为大写,然后判断是否等于YES #include <bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<int 阅读全文
posted @ 2022-07-13 21:55 彦辰kkkkk 阅读(61) 评论(0) 推荐(0)
摘要:A. Doors and Keys 思路:判断三把钥匙是否有一把在对应的门之后才出现,有就是NO,没有就是YES #include <bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<int, int> PI 阅读全文
posted @ 2022-02-26 10:32 彦辰kkkkk 阅读(64) 评论(0) 推荐(0)
摘要:C. Chat Ban 思路: 首先考虑,假如我们在加完第y层的时候被ban了,那之后的第y+1层,y+2层……依旧会被ban,同样的,如果我们在加完第y层没有被ban,那之前的第y-1层,y-2层……也没有被ban,所以我们可以二分答案y。 很明显我们可以分两种情况讨论:当y<=k时,他的和就是1 阅读全文
posted @ 2021-11-25 09:09 彦辰kkkkk 阅读(63) 评论(0) 推荐(0)
摘要:D. Blue-Red Permutation 思路: 贪心,先把blue颜色的num放到前面,因为它们只能变小或者不变而不能变大,我们要得到的是一个1 ~ n的排列,也就是说得到的数组的值中1 ~ n这些数必然出现并且一个只出现一次。那么我们把可以变小的num先放到前面(同颜色的按值大小排序,显然 阅读全文
posted @ 2021-11-09 21:34 彦辰kkkkk 阅读(50) 评论(0) 推荐(0)
摘要:A. Era 思路: 对于任何一个a[i] > i来说,我们可以最多插入a[i] - i个1在最前面,所以最大值我们只需要把所有的a[i] - i取最大值就可以了 #include <iostream> #include <cstring> #include <cstdio> #include <a 阅读全文
posted @ 2021-10-31 15:49 彦辰kkkkk 阅读(191) 评论(0) 推荐(1)
摘要:C. Dijkstra? 思路: Dijkstra求最短路,但要求是输出所经过的路径,具体做法我们可以开一个pre数组,在遍历邻接表的时候记录一个点前面的点是哪个,即一个点是从哪个点过来的,然后我们就得到了一个1到n的逆向路径,然后具体得到这个路径可以用一个while循环然后一直用pre数组迭代更新 阅读全文
posted @ 2021-10-29 22:28 彦辰kkkkk 阅读(89) 评论(0) 推荐(0)
摘要:B. DMCA 思路: 给的样例不由得让人想到开根号上去,这题意思是每次把每一位加起来得到一个和,得到和之后再把这个和的每一位加起来,直到这个和只有个位数。 这东西叫数根。有关于他的性质和公式: 公式:(n - 1) % 9 + 1 性质:一个数加上9之后他的数根不变 不用公式做法: #includ 阅读全文
posted @ 2021-10-28 16:25 彦辰kkkkk 阅读(162) 评论(0) 推荐(0)
摘要:C. Grandma Capa Knits a Scarf 思路: 官方的思路真的牛皮,字符串双指针确实平时打得少。由于题目中说我们只选择一种字符,所以我们可以枚举所有的26中小写字母,然后用双指针,一个指开头,一个指结尾,两个字符相等就双指针都移动,如果不相等,看当前指向的字符是不是可以删掉,即等 阅读全文
posted @ 2021-10-26 20:44 彦辰kkkkk 阅读(113) 评论(0) 推荐(0)
摘要:B. Make it Divisible by 25 思路: 能被25整除的数的最后两位一定只有四种情况,00,50,25,75。所以我们只要 1.找到一个0时,从当前位置开始往前找,找到第一个0或者第一个5, 2.找到一个5时,从当前位置开始往前找,找到第一个2或者第一个7, 此时更新一下res, 阅读全文
posted @ 2021-10-15 00:38 彦辰kkkkk 阅读(126) 评论(0) 推荐(0)
摘要:B. Groups 思路: 只要找到是否有两天满足条件即可,我们可以这么分析,对于任意的两天,看这n组学生: 一天有课且另一天没课的记为cnt1 一天没课且另一天有课的记为cnt2 两天都有课的记为cnt3 两天都没课的记为cnt4 而两天都有课cnt3的可以放到cnt1中也可以放到cnt2中,我们 阅读全文
posted @ 2021-10-12 22:53 彦辰kkkkk 阅读(175) 评论(0) 推荐(0)
摘要:A. Initial Bet 思路: 题目写的和shi一样,本来意思很简单,题目说的曲里拐弯的,就是看加起来能不能被5整除,由于都是正整数,所以要特判0的情况 #include <iostream> #include <cstring> #include <cstdio> #include <alg 阅读全文
posted @ 2021-10-10 10:21 彦辰kkkkk 阅读(70) 评论(0) 推荐(0)
摘要:A. Gamer Hemose 思路: 这题刚开始用暴力做的,然后TLE了,然后就思考这个h有没有别的方法处理。先从大到小排序,然后分两种情况,首先,如果h比一倍的前两项的和还小,那就再看h是不是比第一项还小,如果比第一项还小或和第一项相等,那答案就是1。如果比第一项大一点,那答案就是2。 然后第二 阅读全文
posted @ 2021-10-04 22:55 彦辰kkkkk 阅读(72) 评论(0) 推荐(0)
摘要:A. CQXYM Count Permutations 思路: 答案是(2n)!/2,不知道啥原理,靠样例猜。 题目的描述是: 而这种情况答案是(2n)!/2,这占了全排列一半的情况,那么另一半的情况应该是 即这种情况答案应该也是(2n)!/2 而这个题防止意外可以用快速模,但是最关键的点在于,这个 阅读全文
posted @ 2021-10-01 10:24 彦辰kkkkk 阅读(321) 评论(0) 推荐(0)
摘要:A. Casimir's String Solitaire 思路: 分别记录字母A, B, C的数量,显然要满足B的数量等于A的数量和C的数量的和才行 #include <iostream> #include <cstring> #include <algorithm> #include <cmat 阅读全文
posted @ 2021-09-30 08:24 彦辰kkkkk 阅读(168) 评论(0) 推荐(0)
摘要:A. Regular Bracket Sequences 思路: 枚举,我们让出现先连续左括号和出现右括号的数量一一对应,我们从连续出现n个左括号开始枚举,下一次枚举是先连续出现n-1个左括号,在下一次是n-2……直到最后只能先有1个左括号为止,我们可以记录一个变量cnt,来记录当前的枚举,枚举一种 阅读全文
posted @ 2021-09-21 16:46 彦辰kkkkk 阅读(199) 评论(2) 推荐(0)