- 博客(6)
- 收藏
- 关注
原创 A1. Prefix Flip (Easy Version)
传送门一种O(n)的做法可以发现,当选择首或者尾时候(以尾为例),数字翻转,然后倒置,再翻转过来,其实和原字符串是一样的。那么就可以从后往前当某个位置不同时,将前面的翻转倒置,然后将第一个再翻转一次,然后再选择之前的那个位置再倒置一下,就只会将那个不同的变成相同的了。#include <iostream>#include <cstring>#include <string>#include <vector>#include <strin
2021-02-16 20:19:27 173 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 154 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 96
原创 B. Toy Blocks
传送门很有意思的一道题一看题目位置,再一看题目数据大小,是贪心又没跑了。为了使 n - 1 个盒子都相等,那么可以知道假设相等,分好后的每个盒子的小球数量要 >= 之前盒子中球数量的最大值。等于的情况是总数 ** sum % (n - 1) == 0 **大于的情况是总数 ** sum % (n - 1) != 0**等于的跳过,对于大于的情况,那么也就是说分不均。在这种情况下,就要多拿出来一些小球。而数量如何确定呢?判断平均值和最大值的那个盒子哪个更大。最后用这个值乘以(n
2021-02-11 00:17:17 117
原创 Long Jumps(思维)
传送门看了题目数据大小,又是贪心,时间复杂度O(N),这几天一直做B/C题把自己给做出PTSD来了都。我の思路假设选定任意一个下标从当前位置开始计算,那么它后面的相应的数字都会被计算上。也就是说,当后面再在后面选择的时候,就有可能会选到从前面跳过去的数字,这样的话就会造成重复计算,也就是说,从前面选比从后面选择更优,或者说,最好是从前面选,然后每一次碰到的都标记上,这样在后续遍历的时候假设碰到之前跳到这里了就不需要再重复计算了。My solution?????????????????????
2021-02-11 00:06:40 269
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人