CodeForces
文章平均质量分 62
ZZXzzx0_0
若然能力还不能莫及时空的流逝,那就再强一档。
展开
-
Codeforces Round #783 (Div. 2) D题解
A. Vasya and Coins题意:给你nnn个数的数组,你可以把这个数组分为若干个连续的子数组,不能为空。假设s[i]s[i]s[i]为aaa数组的前缀和数组那么连续子数组ala_lal al+1a_{l+1}al+1 …ara_rar的价值为r−l+1r - l + 1r−l+1 前提是: s[r]−s[l−1]>0s[r] - s[l-1] > 0s[r]−s[l−1]>0000 前提是: s[r] - s[l-1] = 0−(r−l+1)-(r原创 2022-04-20 00:40:48 · 946 阅读 · 2 评论 -
Codeforces Round #780 (Div. 3) A-F2题解
Codeforces Round #780 (Div. 3) A-F2题解原创 2022-04-01 01:26:37 · 1796 阅读 · 5 评论 -
Educational Codeforces Round 123 (Rated for Div. 2) A-E题解
Educational Codeforces Round 123 (Rated for Div. 2) A-E题解A - Doors and KeysB - Anti-Fibonacci PermutationC - Increase Subarray SumsD - Cross ColoringE - Expand the Path原创 2022-02-23 01:30:06 · 669 阅读 · 4 评论 -
Codeforces Round #770 (Div. 2) ABCD题解
Codeforces Round #770 (Div. 2) ABCD题解A. Reverse and ConcatenateB. Fortune TellingC. OKEAD. Finding Zero原创 2022-02-07 01:32:27 · 955 阅读 · 1 评论 -
Educational Codeforces Round 122 (Rated for Div. 2) A-D题解
A. Div. 7思路:注意n>=10,说明一定是两位数注意n>=10,说明一定是两位数注意n>=10,说明一定是两位数并且7个一循环,直接枚举这位数的最后一位并且7个一循环,直接枚举这位数的最后一位并且7个一循环,直接枚举这位数的最后一位暴力判断是否可行即可暴力判断是否可行即可暴力判断是否可行即可时间复杂度:OtOtOt#include <bits/stdc++.h>#define fer(i,a,b) for(re i = a ; i <= b ; ++原创 2022-02-01 00:35:08 · 589 阅读 · 0 评论 -
Codeforces Round #744 (Div. 3) A-F 题解
纪念第一次打进接近前百这次的题意就不再赘述了大概说一下方法A. Casimir’s String Solitaire思路:每次都有BB的数量等于A和C的和即可时间复杂度:OnOnOn#include <bits/stdc++.h>#define fer(i,a,b) for(re i = a ; i <= b ; ++ i)#define der(i,a,b) for(re i = a ; i >= b ; -- i)#define all(x) (x).be.原创 2021-09-29 01:12:40 · 612 阅读 · 5 评论 -
Codeforces Round #740 (Div. 2) D1. Up the Strip (simplified version)
D1. Up the Strip (simplified version)题意:你现在在n你可以n - x [ 1 <= x <= n - 1 ]你也可以 n / x [ 2 <= x <= n ]问你从n到1的方案数对m去模2 ≤ n ≤2e5 1e8 < m <1e9思路:实现大致方向先确定是动态规划然后先把暴力的n^2的代码写出来写出来之后在考虑优化假设f[i]表示从第i层到第1层的方案数转移方程题目已经给你了先看下面暴力的代码原创 2021-08-25 01:30:35 · 376 阅读 · 0 评论 -
Codeforces Round #739 (Div. 3) F1. Nearest Beautiful Number (easy version)
F1. Nearest Beautiful Number (easy version)题意:题目读假了 导致wa了14遍然后赛后看数据1 2 竟然是1不是10???????题目给1e4个询问每次给n,k找到第一个大于等于n的数x满足x的所有不同字母的个数<= k1 <= k <= 2 , 1 <= n <= 1e9思路:k = 1 的时候 直接暴力主要是k=2的时候比较麻烦考虑一下预处理出所有的k=1和k=2的数字用状态压缩优化时间复杂.原创 2021-08-19 01:50:42 · 252 阅读 · 0 评论 -
Codeforces Round #733 (Div. 1 + Div. 2) C. Pursuit
D. Secret Santa题意:给t组样例每组样例给n个数a[1] , a[2] , a[3] ...... a[n]b[1] , b[2] , b[3] ...... b[n]数据保证(0 <= a[i] , b[i] <= 100 , t组样例n的总和小于1e5)a[i]表示第一个人在i这个阶段的分数b[i]表示第二个人在i这个阶段的分数现在只给了n个阶段每个人的分数后面若干个阶段的分数值0到100之间都有可能现在定义一个人在i这个阶段的得分为从i个分数中取出原创 2021-07-18 02:40:53 · 257 阅读 · 1 评论 -
Codeforces Round #733 (Div. 1 + Div. 2) D. Secret Santa
D. Secret Santa题意:给t组样例每组样例给n个数a[1] , a[2] , a[3] ...... a[n](t组样例n的总和<=2e5,a[i] <= n)并且保证a[i] != i求一个数组p并且这个数组p为1到n的全排列中的一种方式求 p[i] == a[i] 的个数最大并且p[i] != i输出这个个数的最大值和p数组思路:首先先把可以匹配的匹配了举个例子a 6 4 6 2 4 5 1从头到尾扫一遍p 6 4 _ 2 _ 5 1还差3原创 2021-07-18 02:15:26 · 357 阅读 · 2 评论 -
Codeforces Round #732 (Div. 2) B. AquaMoon and Stolen String 题解
B. AquaMoon and Stolen String题意:给定t组n,m( t组n*m的总和 <= 1e5 )接下来n行n个长度为m的字符串对于每一对字符串,你都可以选择一些位置(至少1个,最多m个)并在所选位置交换这一对的两个字符串中的字母。接下来n-1行n-1个长度为m的字符串问你一定可以进行一些交换使得这n-1个字符串等于一开始给的n个字符串中的其中n-1个并且输出剩下的那一个字符串思路:个人感觉这题理解题意是其一那么考虑一下交换只在不同对之原创 2021-07-12 01:08:14 · 218 阅读 · 0 评论 -
Codeforces Round #731 (Div. 3) A - F 题解汇总
A. Shortest Path with ObstacleaB. Alphabetical StringsC. Pair ProgrammingD. Co-growing Sequence E. Air ConditionersF. Array Stabilization (GCD version)原创 2021-07-11 12:09:19 · 178 阅读 · 0 评论 -
Codeforces Round #731 (Div. 3) E. Air Conditioners
E. Air Conditioners题意:给定q组样例(q <= 1e4)每组样例给n , k x1 , x2 , ..... xkt1 , t2 , ..... tk n表示数轴上的n个点k表示一个有k个冰箱x,t 表示该冰箱在数轴上的位置,温度为t求对数轴上的每一个i [1 <= i <= n ]min(tjt_jtj + ∣xj−i∣\vert {x_j-i} \vert∣xj−i∣ ) [ 1 <= j <= k ] 的值思路:我们可原创 2021-07-11 10:24:35 · 211 阅读 · 0 评论 -
Codeforces Round #731 (Div. 3) B. Alphabetical Strings
B. Alphabetical Strings题意:你一开始有一个空的字符串 s = "" 从‘a'到‘z'这26个字母按照顺序你每次可以 s = s + 这个字母或者是 s = 这个字母 + s 现在给你q个询问(q <= 1e4)每个询问给你一个字符串(strlen <= 26)问这个字符串是否可以是s的其中一个子串思路:s必定是从字母a开始相加所以先找到字母a的下标然后定义2个指针l,r依次向左和向右走如果这2个指针可以走到头说明是s的子串时间复杂度原创 2021-07-11 02:00:03 · 341 阅读 · 0 评论 -
Codeforces Round #731 (Div. 3) A. Shortest Path with Obstaclea
A. Shortest Path with Obstacle题意:求从a点出发不经过f点到达b点的最短的曼哈顿距离思路:if特殊判断一下当三个点横坐标相等的时候,f点是否在2点之间或者是当三个点纵坐标相等的时候,f点是否在2点之间如果是的话 说明不能走直线,距离要+2否则就是a到b的曼哈顿距离时间复杂度:O t#include<bits/stdc++.h>#define fer(i,a,b) for(re i = a ; i <= b ; ++ i)#defin原创 2021-07-11 01:45:48 · 229 阅读 · 0 评论 -
Codeforces Round #731 (Div. 3) F. Array Stabilization (GCD version)
F. Array Stabilization (GCD version)题意:给t组样例(t <= 1e4)每组样例给na[1] , a[2] , ...... a[n] (a[i) <= 1e6 n <= 2e5)定义一个新数组b[]数组b数组等于gcd(a[i],a[(i+1)%n])然后把b复制给a问最少复制多少次使得a数组中的所有数都相等思路:我们可以发现第1次操作之后b[1] = gcd(a[1],a[2])第2次操作之后b[1] = gc原创 2021-07-11 01:12:01 · 491 阅读 · 7 评论 -
Codeforces Round #713 (Div. 3) F. Education 超详细思考过程
F. Education题意:t组样例(t <= 1e4)每组样例给你n , ca[1] , a[2] ........ a[n] b[1] , b[2] .........b[n-1](n <= 2e5 , c <= 1e9)c表示目标的金钱如果你在等级i你每天可以赚a[i]的钱当然你在这一天也可以不赚钱升级你的等级如果你的等级在i升级到i+1级需要b[i]的钱你一开始在第1个等级问赚到至少c钱的最小天数数据保证 a递减a[1] <=原创 2021-07-10 18:58:39 · 124 阅读 · 0 评论 -
Codeforces Round #726 (Div. 2) A-E1 题解
A. Arithmetic Array题意:给你n个数的数组问最多加几个非负数可以让总和/数组大小等于1思路:分类讨论假设总和为sum,数组个数为n假设加了cnt个非负数x目标是 sum + cnt * x = n + cnt这个式子不难发现右边每次只可以加1左边可以加任何非负数所以如果sum = n 答案为0如果sum < n 答案为1如果sum > n 因为右边每次只能加1左边x可以为0等价于 sum = n + cnt 所以答案为 sum -原创 2021-06-19 01:09:36 · 246 阅读 · 0 评论 -
Codeforces Round #725 (Div. 3) G. Gift Set 题解
G. Gift Set题意:给4个数x,y,a,b每次可以进行2个操作操作1 如果 x >= a , y >= b , x -= a , y -= b ;操作2 如果 x >= b , y >= a , x -= b , y -= a ;问最多可以进行多少次操作(1≤x,y,a,b≤1e9)思路:假设操作1进行了i次,操作2进行了j次那么可以得到a * i + b * j <= x b * i + a * j <= yx >= 0 y原创 2021-06-16 00:08:43 · 182 阅读 · 0 评论 -
Educational Codeforces Round 109 (Rated for Div. 2) A B D 题解
A. Potion-making题意:给你一个k,求k/100化为最简比的父母的值思路:签到题,输出100 / gcd(k,100)时间复杂度:O tlog100#include<bits/stdc++.h>#define fer(i,a,b) for(re i = a ; i <= b ; ++ i)#define re register int#define sf(x) scanf("%d",&x)#define sfl(x) scanf("%lld",&原创 2021-05-16 21:44:23 · 255 阅读 · 0 评论 -
Codeforces Round #720 (Div. 2) A题解
这次只做出来了A…b看情况在补吧…Nastia and nearly Good Numbers题意:给定2个数a,b如果一个数可以被a * b整除的话,就说这个数是好的如果一个数不能被a*b整除的话,但是可以被a整除的话,就说这个数是接近好的每次给出一对a,b,求输出3个数,x,y,z 满足 x + y == z 并且其中有2个接近好的数,和一个好的数思路:首先看t最大是1e6,a,b最大是1e18,所以必须得用o 1或者o logn的时间输出答案那么,分析一下题意,如果一个数可以被a *原创 2021-05-08 01:33:51 · 204 阅读 · 0 评论 -
Codeforces Round #719 (Div. 3) A-G 题解
先补了这些,电脑快没电了,明天在补A Do Not Be Distracted!Do Not Be Distracted!题意:给定一个只含有26个大写字母的字符串,每个大写字母表示一项工作,每项工作只能连续做或者前面做过就不能在做了,如果可以满足条件的话,则输出Yes,否则输出No.题目给的特殊情况直接输出Yes思路:开map 按照题目模拟着做就可以了时间复杂度:o tnlogn#include<bits/stdc++.h>#define fer(i,a,b) for(re i原创 2021-05-06 01:34:22 · 1442 阅读 · 16 评论 -
Contest 2050 and Codeforces Round #718 (Div. 1 + Div. 2) A B C 题解
A Tit for Tat题意:给你一个n个数的数组,在k次操作下,每次可以选2个数,一个+1,一个-1,求如何让数组前面的数最小,后面的数最大。最小不能为-1.思路:模拟,把前面的数-掉都加在最后一个数上#include<iostream>using namespace std;int n,k;int s[110];int main(){ int t; scanf("%d",&t); while(t--) { scanf("%d %d",&n,&am原创 2021-04-24 09:56:05 · 842 阅读 · 20 评论 -
Codeforces Round #717 (Div. 2) A B C 题解
A Tit for Tat题意:给你一个n个数的数组,在k次操作下,每次可以选2个数,一个+1,一个-1,求如何让数组前面的数最小,后面的数最大。最小不能为0.思路:模拟,把前面的数-掉都加在最后一个数上#include<iostream>using namespace std;int n,k;int s[110];int main(){ int t; scanf("%d",&t); while(t--) { scanf("%d %d",&n,&原创 2021-04-22 00:18:07 · 320 阅读 · 0 评论 -
Codeforces Round #713 (Div. 3) A B C D题解
第一题题意是给你一个只有2个数的数组,一个重复,一个不重复。求不重复的数的下标。标记数组即可。#include<bits/stdc++.h>using namespace std;#define re register inttypedef long long ll ;const int N = 110 ;int n , t ;int a[N] ;int s[N] ;int main(){ cin >> t ; while(t--) {原创 2021-04-11 12:19:08 · 298 阅读 · 0 评论