
codeforces
百里渠
这个作者很懒,什么都没留下…
展开
-
A1. Prefix Flip (Easy Version)
传送门一种O(n)的做法可以发现,当选择首或者尾时候(以尾为例),数字翻转,然后倒置,再翻转过来,其实和原字符串是一样的。那么就可以从后往前当某个位置不同时,将前面的翻转倒置,然后将第一个再翻转一次,然后再选择之前的那个位置再倒置一下,就只会将那个不同的变成相同的了。#include <iostream>#include <cstring>#include <string>#include <vector>#include <strin原创 2021-02-16 20:19:27 · 289 阅读 · 1 评论 -
B. Strange List
传送门两天没做题要废了一道思维题,我的做法是不停的循环,直到遇到不可整除的。其实可以发现,对于每个可以整除x的数,整除后后面添加的这些数字总和还是这个数字,用这个性质计算。#include <iostream>#include <algorithm>using namespace std;typedef long long LL;const int N = 100010;int a[N];void solve(){ int n, x; LL sum = 0原创 2021-02-15 19:38:43 · 254 阅读 · 1 评论 -
C. Two Brackets(思维)
传送门一道水题统计一下有多少对能匹配的就好了My solution#include <iostream>#include <cstring>#include <string>using namespace std;void solve(){ string str; cin >> str; int cnt1 = 0, cnt2 = 0, ans1 = 0, ans2 = 0; int len = str.size(); for(i原创 2021-02-11 00:31:22 · 144 阅读 · 0 评论 -
B. Toy Blocks
传送门很有意思的一道题一看题目位置,再一看题目数据大小,是贪心又没跑了。为了使 n - 1 个盒子都相等,那么可以知道假设相等,分好后的每个盒子的小球数量要 >= 之前盒子中球数量的最大值。等于的情况是总数 ** sum % (n - 1) == 0 **大于的情况是总数 ** sum % (n - 1) != 0**等于的跳过,对于大于的情况,那么也就是说分不均。在这种情况下,就要多拿出来一些小球。而数量如何确定呢?判断平均值和最大值的那个盒子哪个更大。最后用这个值乘以(n原创 2021-02-11 00:17:17 · 169 阅读 · 0 评论 -
Long Jumps(思维)
传送门看了题目数据大小,又是贪心,时间复杂度O(N),这几天一直做B/C题把自己给做出PTSD来了都。我の思路假设选定任意一个下标从当前位置开始计算,那么它后面的相应的数字都会被计算上。也就是说,当后面再在后面选择的时候,就有可能会选到从前面跳过去的数字,这样的话就会造成重复计算,也就是说,从前面选比从后面选择更优,或者说,最好是从前面选,然后每一次碰到的都标记上,这样在后续遍历的时候假设碰到之前跳到这里了就不需要再重复计算了。My solution?????????????????????原创 2021-02-11 00:06:40 · 360 阅读 · 0 评论 -
C. String Equality
传送门很有意思的一道题。刚开始的想法是既然a串中的元素可以任意变动位置,那么就将两个串排序好然后进行一一对应判断就好了如果a串中的当前元素大于b串中的当前元素,就是"No"如果等于下一个,如果小于,判断能不能变,如果能变的话就变,不能变也是“No"但是这样会忽略一个情况,就是如果变后可能后面隔着很多字符也会有和变后相同的,而变后的这一串如果不加上后面那个相同的就不能变了,而现在又和b串的字符不相等,又变不了。所以这个思路是错的。附一下错误代码 sort(a.begin(), a.end()原创 2021-01-30 12:35:57 · 140 阅读 · 0 评论 -
E1. Close Tuples (easy version)(双指针)
E1. Close Tuples (easy version)这道题算是只想出来了一半,在选数的时候,考虑了多种组合,如:1 1 1 2 2 3 3 4 4,当时的想法是找到对当前第一个数满足条件的最后一个数,然后用Clen3C_{len}^{3}Clen3 统计一下有多少,然后这样思路就踩了两个坑:第一个就是这样选择会有重复的情况,如1 到 3 选的时候选了2 2 3,那么在从2开始计数的时候就会又选2 2 3,那么这就出现重复情况,无法继续计算。第二个就是按照这种方法,假如是1 1 1 2 2原创 2021-01-29 10:07:24 · 216 阅读 · 0 评论