- 博客(41)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 2021CCPC湘潭全国邀请赛题解
题目pdf下载提取码: abcdA. A+B Problem题意:给定a和b,求a+b,a+b如果大于1023或者小于-1024,就自动溢出思路:比如1023+1=1024,1024>1023 就自动溢出成-1024,模拟即可时间复杂度:O n#include<bits/stdc++.h>#define fer(i,a,b) for(re i = a ; i <= b ; ++ i)#define re register int#define pll pai
2021-06-08 23:01:13
4197
13
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 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
1483
16
原创 2021-2022-2 ACM集训队每周程序设计竞赛(13)题解
A: 打怪兽version-1题意:有一只怪兽的血量为H你每回合可以对其造成A点伤害问多少回合可以杀死怪兽(其血量小于等于0即为死亡)思路:输出⌈H/A⌉\lceil H/A \rceil⌈H/A⌉即可上取整和下取整之间的转换:⌈H/A⌉\lceil H/A \rceil⌈H/A⌉ = ⌊(H+A−1)/A⌋\lfloor (H+A-1)/A \rfloor⌊(H+A−1)/A⌋时间复杂度:O1O1O1#include<bits/stdc++.h>using namespa
2022-05-27 17:00:00
1614
原创 2021-2022-2 ACM集训队每周程序设计竞赛(8)题解
A. 21点游戏题意:给你三个数A1 , A2 , A3 ,如果A1 + A2 + A3 >= 22 , 输出 bust否则输出 win思路:模拟时间复杂度:O1O1O1#include<bits/stdc++.h>using namespace std ;const int N = 1e6 + 10 ;int main(){ int a , b , c ; cin >> a >> b >> c; in
2022-04-22 17:00:00
3358
原创 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
954
2
原创 Codeforces Round #780 (Div. 3) A-F2题解
Codeforces Round #780 (Div. 3) A-F2题解
2022-04-01 01:26:37
1843
5
原创 Codeforces Round #775 (Div. 2) ABCD题解
A. GameB. Game of Ball PassingC. Weird SumD. Integral Array
2022-03-06 21:16:13
441
原创 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
691
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
966
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
662
原创 Codeforces Round #767 (Div. 2) ABCD题解
A. Download More RAM思路:签到题签到题签到题按照a从小到大排序按照a从小到大排序按照a从小到大排序只要k>=对应的b,就+=b只要k>=对应的b,就+=b只要k>=对应的b,就+=b输出k即可输出k即可输出k即可时间复杂度:OnlognOnlognOnlogn#include <bits/stdc++.h>#define fer(i,a,b) for(re i = a ; i <= b ; ++ i)#define der(i,a,b
2022-01-23 00:35:14
485
原创 BUCT - 2021-2022-1 ACM集训队每周程序设计竞赛(10)题解
Bob和Alice(1)思路:模拟即可模拟即可模拟即可时间复杂度:O1O1O1#include <bits/stdc++.h>#define fer(i,a,b) for(int i = a ; i <= b ; ++ i)#define der(i,a,b) for(int i = a ; i >= b ; -- i)#define all(x) (x).begin(),(x).end()#define sz(x) ((int)(x).size())#define
2021-12-17 14:46:46
663
原创 BUCT - 2021-2022-1 ACM集训队每周程序设计竞赛(7)题解
A - 神秘的老者思路:输出min(n∗a,b)即可输出min(n* a,b)即可输出min(n∗a,b)即可时间复杂度:O1O1O1#include<bits/stdc++.h>using namespace std;int main(){ int n,a,b; cin>>n>>a>>b; cout<<min(n*a,b)<<endl;} B - 借钱思路:暴力枚举即可暴力枚举即可暴力枚举即可判断一个整数
2021-11-12 15:50:34
982
原创 2021-2022-1 ACM集训队每月程序设计竞赛(2)F: max or min
F: max or min题意:给你一个n个数的数组和一个k给你一个n个数的数组和一个k给你一个n个数的数组和一个k1<=n,k<=1e5,1 <= n , k <= 1e5 ,1<=n,k<=1e5,a1,a2,......ana1,a2,......ana1,a2,......an1<=ai<=n1 <= ai <= n1<=ai<=n求一个最长区间[l,r]求一个最长区间[l,r]求一个最长区间[l,r]满足这个区间
2021-10-30 09:06:42
264
原创 2021-2022-1 ACM集训队每周程序设计竞赛(3)题解
A - 苹果派题意:你有a个苹果和p个苹果片你有a个苹果和p个苹果片你有a个苹果和p个苹果片1个苹果可以制作3个苹果片1个苹果可以制作3个苹果片1个苹果可以制作3个苹果片2个苹果片可以制作1个苹果派2个苹果片可以制作1个苹果派2个苹果片可以制作1个苹果派问一共可以制作多少个苹果派问一共可以制作多少个苹果派问一共可以制作多少个苹果派0<=a,p<=1000 <= a , p <= 1000<=a,p<=100思路:模拟模拟模拟时间复杂度:O1O1O1#i
2021-10-06 17:11:46
1513
2
原创 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
627
5
原创 AtCoder Beginner Contest 217 A B C D E G 题解
纪念我第一次非严格意义上的AK纪念我第一次非严格意义上的AK纪念我第一次非严格意义上的AKA - Lexicographic Order题意:s字符串的字典序是否小于ts字符串的字典序是否小于ts字符串的字典序是否小于t思路:模拟模拟模拟时间复杂度:O1O1O1#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 ; .
2021-09-04 22:11:59
574
3
原创 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
420
原创 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
267
原创 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
276
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
375
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
231
原创 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
182
原创 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
229
原创 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
365
原创 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
253
原创 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
507
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
135
原创 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
257
原创 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
198
原创 floyd求最小环
观光之旅题意:给定一张无向图,求图中一个至少包含 3 个点的环,环上的节点不重复,并且环上的边的长度之和最小。该问题称为无向图的最小环问题。你需要输出最小环的方案,若最小环不唯一,输出任意一个均可。思路:具体细节可以看代码时间复杂度:O n^3#include<bits/stdc++.h>using namespace std;const int N = 110 , inf = 0x3f3f3f3f ;int n , m ;int d[N][N] , g[N][N] ;
2021-06-01 01:38:50
184
2
原创 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
262
原创 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
213
原创 给n,求n/1+n/2+n/3+....+n/n的值
给n,求n/1+n/2+n/3+…+n/n的值首先,n最大范围1e9,暴力肯定超时那么先看一段代码#include<bits/stdc++.h>#define fer(i,a,b) for(re i = a ; i <= b ; ++ i)#define re register inttypedef long long ll ;using namespace std;const int N = 1e6 + 10 , M = 1010 , inf = 0x3f3f3f3f
2021-05-07 02:53:34
4290
原创 buctoj2021年ACM竞赛班训练(七)题解
A: 玩游戏题意:初始有一堆石子共n个,双方轮流行动,每次可以从中取出恰好完全平方数(1、4、9……)个石子,不可以不取石子直接跳过回合。双方都足够聪明,会按最优的方式来游玩,无法行动的人输掉该游戏(等价说法:取走最后一个石子的人赢)。思路:设 f(i) 表示在 i 堆石子时,当前操作的玩家是否有必胜策略。f(i)=true为必胜,否则必败。初始时,f[i * i] = true,其余待定。转移时,对于一个 i,枚举 j 满足 j * j ≤ i。如果存在 j 使得 f(i−j * j) 是必败
2021-05-07 00:09:35
965
6
原创 miller_rabin判断质数logn
写这次博客的原因是在网上看了很多的miller_rabin判断质数,发现代码都很长或者不好理解,这次搞懂了写个简单易懂的方便大家理解。首先,根据费马小定理,如果一个数n是质数的话,那么必定存在一个数a,使得a的n-1次方%n必定等于1那么,我们就可以用随机化算法,去随机a的次数,然后只要存在a的n-1次方%n不等于1,就返回false最后返回true代码如下#include<bits/stdc++.h>#define fer(i,a,b) for(re i = a ; i <=
2021-04-24 21:12:46
285
原创 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
869
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
334
原创 buctoj2021年ACM竞赛班训练(四)全题解
B-平方斐波那契题意:给你个数n,回答第n个斐波那契数是不是平方数斐波那契数定义为f1=1,f2=1,f3=f1+f2…fn=fn-1+fn-2思路:有一个很明显的性质是只有1和144是平方数,其余都不是平方数#include<bits/stdc++.h>using namespace std;int main(){ long long n ; cin >> n ; if(n == 1 || n == 2 || n == 12) puts("1"
2021-04-15 18:57:39
616
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人