Codeforces
Leonard.7
这个作者很懒,什么都没留下…
展开
-
Educational Codeforces Round 117 (Rated for Div. 2)A-E
A. Distance思路:通过观察可以看出数据范围很小,暴力枚举每一种可能并判断是否合法。代码:#include <bits/stdc++.h>#define fi first#define se second#define pb push_backusing namespace std;using ll = long long;using PII = pair <int, int>;using vi = vector <int>;const in原创 2021-11-23 20:25:53 · 491 阅读 · 0 评论 -
C. Shawarma Tent
题目链接思路:显然,答案的范围可以缩小到只有学校周围的四个点。代码:#include <bits/stdc++.h>#define fi first#define se second#define pb push_backusing namespace std;using ll = long long;using PII = pair <int, int>;using vi = vector <int>;const int N = 2e5 + 10;原创 2021-11-17 21:58:12 · 292 阅读 · 0 评论 -
Codeforces Round #655 (Div. 2) D. Omkar and Circle
链接题意:给一个奇数长度的数组,操作是选择一个位置,删除其相邻的数,并将该位置的数赋值为相邻数的和,求最终剩下的一个数字最大为多少思路:最简单的取值方式显然是取所有的下标为奇数的数字的和以及取所有下标为偶数加上下标1的和,但是这样的话这题似乎就太简单了,于是我们开始考虑能否通过一些手段构造出其余的取值方法。经过不断肉眼观察,我们可以发现,当利用最后一个数字为中间数时可以实现包含奇数和偶数的构造方法,形如1+3+5+6,1+3+4+6,1+2+4+6……,于是我们可以通过求出奇数项和偶数项的前缀和计算得出原创 2021-10-19 21:32:06 · 144 阅读 · 0 评论 -
CF1485D.Multiples and Power Differences
题目链接思路:这是一道构造题,构造的通常是通过挖掘这道题的某些性质来找一种通解。在这题中,有几个条件显得很突兀,1≤bij≤1061≤b_{ij}≤10^61≤bij≤106,1≤aij≤161≤a_{ij}≤161≤aij≤16,而这题中bijb_{ij}bij还都是aija_{ij}aij的倍数,很容易往最小公倍数上想,但是如果每两个数构造一次显然最终会远大于10610^6106。其实还有个条件也可以利用,这是个n∗mn*mn∗m的矩阵,关于矩阵的构造有时会利用到i∗ji*ji∗j的奇偶性,在原创 2021-08-17 23:47:36 · 127 阅读 · 0 评论 -
B - Maria Breaks the Self-isolation
题意:每个人有一个aia_iai,只有当已经在场上的人大于aia_iai时,这个人才能上场,需要注意的是场上初始时就有一个人。思路:显然,aia_iai小的人会更早上场,所以我们可以先排一遍序,当iii大于aia_iai时就意味前iii个人都可以上场。代码:#include <bits/stdc++.h>#define x first#define y secondusing namespace std;typedef long long ll;typedef pair原创 2021-08-05 21:33:08 · 111 阅读 · 0 评论 -
A - Sequence with Digits
题意:由递推式an+1=an+minDigit(an)⋅maxDigit(an)a_{n+1}=a_n+minDigit(a_n)⋅maxDigit(a_n)an+1=an+minDigit(an)⋅maxDigit(an),其中minDigit(an)minDigit(a_n)minDigit(an),maxDigit(an)maxDigit(a_n)maxDigit(an)分别为ana_nan中最小的一位数和最大的一位数,求aka_kak的值。做法:题目的数据范围非常大,显然直接暴力是原创 2021-08-03 23:28:18 · 130 阅读 · 0 评论 -
Codeforces Round #715 (Div. 2)
A. Average Height题意:构造数组使相邻两个数相除是整数的数量最多。思路:奇数挨在一起,偶数挨在一起。第一次第一分钟过A题(好耶!)代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e5 + 10;int t;int n, a[N], m;string s;int main() { scanf("%d", &t); while(t原创 2021-04-17 16:23:12 · 150 阅读 · 0 评论 -
CodeForces - 940C Phone Numbers
传送题意:可以将字符串中的每一个字符修改成字符串中出现的字符,使修改后的字符串的字典序是大于原字符串的字典序的中最小的。思路:从字符串最后往前找不是该字符串最大字符的字符,修改成大于这个字符的第一个字符,让后把后面的字符都修改成该字符串最小的字符。注意k与n的比较!代码:#include <bits/stdc++.h>using namespace std;int n, k;bool l[30];string s;int main() { scanf("%d%d", &am原创 2021-04-16 14:41:00 · 145 阅读 · 0 评论 -
CodeForces - 1082B Vova and Trophies
传送题意:一个只包含G和S的字符串,一次交换能使连续的G最长为多少。思路:想要使只包含G的子串最长,显然贪心地将两个子串中间的S与一个不在子串的G交换再与最大值比较就可以了,要注意除了这两个子串外还有没有多余的G可供交换。代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;int n;int tmp[100010];string s;int main() { scanf("%d", &am原创 2021-04-16 13:50:10 · 158 阅读 · 0 评论 -
CodeForces 678C Joty and Chocolate
链接:CodeForces 678C思路:一道比较常见的数学题,用到一点点容斥原理的知识。显然,n里面a的倍数有n/a个,b的倍数有n/b个,但是有某些数可能既是a的倍数,同时也是b的倍数,这些数应该是加p还是加q呢?很明显加大的那个数可以使最大值更大。那么问题又来了,n里面有多少数既是a的倍数也是b的倍数呢?这是本题最关键的一点。学过基础数论的话,都知道有n/lcm(a,b)个数既是a的倍数也是b的倍数,所以只要再对这n/lcm(a,b)个数进行特殊处理加上max(p,q),同时不要忘记减去多加的那一部原创 2021-04-02 13:25:50 · 165 阅读 · 0 评论 -
CodeForces - 732A
CodeForces - 732A思路:题目中告诉我们这个人有无数张价值为10的纸币和一张价值为r的纸币,所以只要当总共的钱数对10取余为0或为r时成立,记录当前的cnt即可。#include <bits/stdc++.h>using namespace std;int k, r;int main(){ scanf("%d%d", &k, &r); k = k % 10; int temp = k; int cnt = 1; while(temp % 10原创 2021-03-26 18:58:36 · 174 阅读 · 0 评论 -
CodeForces 876C Classroom Watch
题面:https://codeforces.com/problemset/problem/876/C思路:这是一道典型的cf题。n最大时1e9,当每一位数都为9时,各数位上的数之和最大为81,所以只需要从n-81到n循环一遍有多少符合条件的,并将其用一个数组保存。代码:#include <bits/stdc++.h>using namespace std;int n, a[100010];int main(){ scanf("%d", &n); int cnt = 0;原创 2021-03-18 22:41:08 · 138 阅读 · 0 评论 -
Educational Codeforces Round 102 (Rated for Div. 2)
放假回家了,终于能开着灯打一场紧张刺激的cf了…这一场四十几分钟过了三道题,第四题差一点。有想一起打CF的朋友可以加我qq:942845546,共同进步,共同上分,欢迎骚扰(传统艺能)。比赛地址:Educational Codeforces Round 102 (Rated for Div. 2)A - Replacing Elements解题思路:读完题可以发现有两种情况是符合的,1.所有的数字都小于等于d2.最小的两个数相加小于等于d,就可以将所有大于d的数字替换所以先排序,当最大的数小原创 2021-01-15 01:37:11 · 307 阅读 · 3 评论 -
Educational Codeforces Round 100 (Rated for Div. 2)A-C
第100场Edu,挺有纪念意义战况:rating+79还是个pupil(挠头)有想一起打CF的朋友可以加我qq:942845546,共同进步,共同上分,欢迎骚扰(手动滑稽)。这一场在A,B上浪费了不少时间,还加了三十分钟罚时(笑哭),导致C题看出解法最后没打完,说到底还是码力不行,水平太菜。题面太长,请点击Educational Codeforces Round 100 (Rated for Div. 2)A.Dungeon思路:当满足a+b+c>=9并且a+b+c的和为9的倍数且(原创 2020-12-19 00:43:30 · 1212 阅读 · 4 评论 -
Codeforces Round #690 (Div. 3)A-E2
题面过长,在博客暂且略过。。若需要体面,请点击Codeforces Round #690 (Div. 3)由于作者实力有限,就先写A-E1题的题解吧。A.Favorite Sequence思路:显然,我们需要把给出的序列每次输出前列的一个和后列的一个,需要特判下n的奇偶性。#include <bits/stdc++.h>using namespace std;int t, n;int a[10000010];int main(){ scanf("%d", &t);原创 2020-12-16 22:02:45 · 171 阅读 · 3 评论 -
Codeforces Round #686 (Div. 3)
A. Special Permutationtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given one integer n (n>1).Recall that a permutation of length n is an array consisting of n distinct integers from 1原创 2020-11-26 11:12:14 · 110 阅读 · 0 评论