Codeforces
文章平均质量分 79
做一只大熊猫
让优秀成为一种习惯!
展开
-
Codeforces Round #752 (Div. 2)(A~D)
题目链接A. Era题意给我们一个长度为 n 的序列 ai,我可以向 ai 中插入一些数字,然后使 ai >= i。思路找到所有 ai - i 的最大值 mx 就可以了,我们在 a 数组前边插入 mx 个 1 就可以了。代码#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int n, m;int a[N];int main(){ int T; scanf(原创 2021-11-05 10:13:55 · 127 阅读 · 0 评论 -
Codeforces Round #749 (Div. 1 + Div. 2, based on Technocup 2022 Elimination Round 1)(A~D)
题目链接A. Windblume Ode题意给我们一个长度为 n 的数组 a,a 中元素个不相同,让我们从中选择尽可能多的数,形成一个子集,要求这个子集中的所有数字和为一个非质数。输出这个最大尺寸。思路当 a 中所有的元素和不为质数时,选择 a 中的所有元素。当 a 中所有元素和为质数的时候,我们只需要去掉以一个奇数,就行了,因为质数一定是奇数,所有 a 中一定存在奇数。代码#include <iostream>#include <cstring>#inc原创 2021-11-02 21:39:00 · 233 阅读 · 0 评论 -
Codeforces Round #738 (Div. 2)(D、E)
D2. Mocha and Diana (Hard Version)(并查集+思维)题意给我们两颗森林 a、b,都有 n (n<=1e5)n~(n<=1e5)n (n<=1e5) 个点,我们可以进行一种操作:选择两个点 i,ji,ji,j 在 i、j 之间建立一条边,要求在操作之后,a、b 中都不能存在环问最多可以操作多少次。思路对于 a、b 中的某个点 i (i!=1)i~~(i!=1)i (i!=1),原创 2021-08-20 11:37:24 · 102 阅读 · 0 评论 -
Codeforces Round #722 (Div. 2)(A~D)
A. Eshag Loves Big Arrays思路找出比最小数大的数字的数量,就是答案代码#include <bits/stdc++.h>using namespace std;#define db double#define ll long long#define Pir pair<int, int>#define fi first#define se second#define pb push_back#define m_p make_pai原创 2021-08-04 16:11:50 · 105 阅读 · 0 评论 -
Codeforces Round #736 (Div. 2) (C~D)
C. Web of Lies思路这题我们只需要看出来,对于某个点 u,如果存在 v > u, 且 u->v 之间有边那么我们就一定可以把 u 删掉,翻译过来就是如果 u 的出度(我们默认两个节点之间的边是有向边,节点编号小的 -> 指向编号节点大的节点) > 0 , u 就可以被删去。因为每次增加或者删去一条边,只会改变一个点的出度,那么我们就可不断的位数 每个节点的出度变化情况,就能快速的得出有多少个点被删掉,那么 n - 被删掉的点 ,就是答案了代码#include原创 2021-08-03 11:47:37 · 106 阅读 · 0 评论 -
B. Plus and Multiply CodeForces - 1542B (思路,公式化简)
题目练级题意给我们两个数字 a、b,通过这个两个数字我们可以构造出来一个无穷元素的集合 S,构造方法:1 最初在集合中,通过 1 和可以构造出 1a 与 1+b 在这个集合中,又因为 z=1a 在这个集合中,那么 z*a 与 z+b 也在这个集合中,… 现在问我们 n 这个元素是不是在 S 集合中思路其实如果 n 在 S 中的话,那么 n 一定可以被写成:n=ax+b∗yn = a^x + b*yn=ax+b∗y, (其中 x,y 是恰当的数字),这个可以自己在纸上随便构造 S 中的元素,原创 2021-07-27 19:22:54 · 236 阅读 · 0 评论 -
C. Strange Function(思路枚举)
题目链接题意定义 f (i) 表示不能整除 i 的最小正整数,现在让我们求:f(1)+f(2)+...+f(n)f(1)+f(2)+...+f(n)f(1)+f(2)+...+f(n), 其中 n <= 1e16.思路这个题比赛的时候,一心想着找规律去做,结果找了半天什么都没有找到。而这题的实际正解是:通过枚举 x,x 表示所有 i 不能整除 x,且 x 是 i 的最小 f (i),我们观察如果 f (i) = x 那意味着,i 可以整除(1~x-1)直接的任意一个数,也就是 i原创 2021-07-27 18:49:38 · 498 阅读 · 0 评论 -
Educational Codeforces Round 102 (Rated for Div. 2)(A~D)
A. Replacing Elements(水贪心)题意思路经过合理操作之后的数都小于等于 d,有两种情况可以:本身数列所有的元素的都小于等于 d,这个时候不需要操作。。数列中最小的两个数之和小于等于 d代码#include <iostream>#include <stdio.h>#include <string.h>#include <math.h>#include <algorithm>#include <原创 2021-01-15 14:27:21 · 268 阅读 · 0 评论 -
Codeforces Round #693 (Div. 3)(A~E)
A. Cards for Friends思路水题。。。。代码#include <iostream>#include <stdio.h>#include <string.h>#include <math.h>#include <algorithm>#include <string>#include <string>#include <map>#include <bitset>#原创 2021-01-13 21:51:29 · 137 阅读 · 0 评论 -
Codeforces Round #695 (Div. 2)(A~C)
A. Wizard of Orz(规律)思路直接找规律,首先要让构造的数尽可能的大的话,就要的高位数字尽可能的大,当位数为 1 的时候我们直接选择第一位,构造出 9,当数位为 2 的时候我们选择第二位,构造出 98,当位数 >=3 的时候我仍然选择二位,构造出 989765432109876543… 注意⤴️的第几位指的是从高位向低位数,代码#include <iostream>#include <stdio.h>#include <string原创 2021-01-13 12:38:04 · 110 阅读 · 0 评论 -
Educational Codeforces Round 97 (Rated for Div. 2)(A~D)
题目传送门A. Marketing Scheme题意一个准备买 x 个物品,他一次可以一包物品有 a 个打折更便宜,他首先先回卖 x/a 包整包的物品,之后对剩余的 s = x% a 报物品如果,s>=a/2 那么他就会在买一包 a,否则他只会零卖 s 个物品,现在一个顾客准备卖 l~r 个物品,怎么安排 a 的大小可以使这个顾客的总是卖的比他准备的卖的多?思路首先如果 a >=l && a <= r 这个时候顾客肯定不会多买,否则的话的我们考虑 a原创 2020-12-10 17:47:23 · 196 阅读 · 0 评论 -
Codeforces Round #682 (Div. 2)(A~D)
A. Specific Tastes of Andre题意构造一个序列是,是序列中的任意一个子串的子串和,可一个被这个子串的长度整除,思路把整个序列的元素都设置为 1代码#include <iostream>#include <stdio.h>#include <string.h>#include <math.h>#include <algorithm>#include <string>#include原创 2020-12-10 16:30:04 · 202 阅读 · 0 评论 -
Codeforces Round #680 (Div. 2 A~D)
A. Array Rearrangment(贪心)思路枚举 a 串中的每个数 u,之后在 b 串中找到一个尽量大的数字 v,且(u+v <=x), 如果在枚举某个 u 的时候无法找到与匹配的 v,就输出 no代码#include <iostream>#include <stdio.h>#include <string.h>#include <math.h>#include <algorithm>#include <原创 2020-12-09 10:36:43 · 185 阅读 · 0 评论 -
A. Cancel the Trains(A~C)
题目传送门A. Cancel the Trains思路如果横竖方向的两个火车编号相同一定会相撞,编号不同不想撞,因此当横竖方向的两个火车编号相同时需要去掉其中任意一个火车#include <iostream>#include <stdio.h>#include <string.h>#include <math.h>#include <algorithm>#include <string>#include <原创 2020-12-07 23:14:34 · 220 阅读 · 0 评论 -
Educational Codeforces Round 99 (Rated for Div. 2)(A~D)
A. Strange Functions题意给我们一个长度 100 位的数字串 n,如 12345000 定义一个函数:f (x) 作用是把 x 颠倒,并且把前导 0 去掉,那 f (f (x)) 的作用就是把 x 后面的 0 全部去掉,给我们一个 n 让我们求 1~n 之间 y= x/f (f (x)) 产生的不同 y 值?思路很简单的规律:答案就是 n 的位数,代码#include <iostream>#include <stdio.h>#inclu原创 2020-12-02 15:02:07 · 180 阅读 · 0 评论 -
Codeforces Round #683 (Div. 2, by Meet IT)
题目连接A. Add Candies(规律,思路)题意给我 n 个袋子,第 i 个袋子装了 i 个糖,现在我们可以进行 m (m<=1000) 次操作,对于第 i 次操作我们首先选择一个袋子 j,然后除了 j 个袋子以外的所有袋子的糖果数量都 + i,让我们输出需要的操作次数 m,和每次操作所选择的袋子编号思路规律题,代码#include <iostream>#include <stdio.h>#include <string.h>#in原创 2020-11-20 18:21:16 · 190 阅读 · 0 评论 -
Codeforces Round #653 (Div. 3)(A~E)
题目传送门A. Required Remainder思路 题意给我们n,x,y 的值 让我们找到 k%x==y的k最大值,0<=k<=n0<=k<=n0<=k<=n 分析很水的一道题, 考虑n中包含x的数量为ct=n/xct=n/xct=n/x, 我们肯定要把这些包含x全部用上, 才可以使k更大, 全部用上得到的k为 ct∗k+yct*k+yct∗k+y,但是我们要 特殊考虑 如果ct*k+y >n的话要使 答案变成 ct * k + y原创 2020-06-29 10:19:28 · 218 阅读 · 0 评论 -
Codeforces Round #651 (Div. 2)(A~D)
A. Maximum GCD分析 题意在1~n之间选择两个不同数a,b,使得它们的gcd(a,b)比其它的任意两个数的gcd值都大 思路如果n是偶数,那gcd最大值一定是 n/2------->gcd(n,n/2)如果n是奇数,那gcd最大值一定是(n-1)/2------>gcd(n-1,(n-1)/2)代码#include <bits/stdc++.h>using namespace std;void fre() { freopen("A.tx原创 2020-06-22 09:01:23 · 1859 阅读 · 1 评论 -
Educational Codeforces Round 80 (Rated for Div. 2)(A~E)
总题目传送门A. Deadline分析 题意给我们一个表达式 x + d/(x + 1) 让求它的最小值, 思路基本不等式:a+b>=2∗sqrt(a∗b)a+b>=2*sqrt(a*b)a+b>=2∗sqrt(a∗b),当且仅当 a 、b>0, 且 a == b 的时候对 原式变形为:[x + 1 + d/(x+1)] - 1, 之后对中括号部分应用基本不等式代码#include <bits/stdc++.h>using namesp原创 2020-06-11 21:06:54 · 430 阅读 · 1 评论 -
Codeforces Round #646 (Div. 2)(A~E)
题目传送门A. Odd Selection分析 题意从n个数中选择m个数,问能使这个m个数的和位奇数? 思路首先对于这个n个数我们可以统计出其中的 奇数与偶数 的数量分别设为 x、y,如果要想让m个数想加位奇数的话,在m个数中,奇数的数量必须是 奇数个,而偶数的数量 奇、偶对答案都不会有影响(前提是 奇数量 + 偶数量 = m),那么一种是思路是我们考虑 奇数的数量 在m个数中,尽可能的多使用奇数,这样对偶数的需求数量就减少了,这样更容易得出ans ,首先我们令 x = min原创 2020-06-10 17:33:59 · 1515 阅读 · 1 评论 -
Codeforces Round #647 (Div. 2) - Thanks, Algo Muse!(A~D)
A. Johnny and Ancient Computer(因子拆分)分析 题意给我们两个数a、b,现在我们我们可以对 a来了进行一些系列的x2 、x4、 x8、 /2 、/4、 /8 等运算操作,问我们通过一些这样的操作以后能否把a变成b,如果能输出需要的最小次数,否则输出-1 分析这个题中既可能有乘法 又有 除法操作,我们可能 在输入a、b的之后,如果 a < b的话,我们交换二者的值,令a始终保持较大值,这样我们只需要对a进行 除法操作了,如果 对a进行 /2 /4 /原创 2020-06-07 19:43:30 · 431 阅读 · 0 评论 -
Educational Codeforces Round 88 (Rated for Div. 2)(A~D)
A. Berland Poker(简单情况讨论)分析 思路主要的思路就是,先计算出平均每个手中手中的牌的数量ct,这个时候我们考虑,接下来要先让分数尽可能的大,就应该让 尽可能多的的joker牌在一个人的手中,那么我们就分类讨论如果m<=ctl,就把m张牌都给一个人如果m>ct,就把ct张牌给一个人,然后剩下的牌 平均分配就行了代码#include <bits/stdc++.h>using namespace std;void fre() { freopen原创 2020-06-07 16:36:06 · 438 阅读 · 1 评论 -
Codeforces Round #640 (Div. 4)(A~G)
A. Sum of Round Numbers(水题)代码#include <bits/stdc++.h>using namespace std;void fre() { freopen("A.txt", "r", stdin); freopen("Ans.txt","w",stdout); }void Fre() { freopen("A.txt", "r", stdin);}#define ios ios::sync_with_stdio(false)#define Pi ac原创 2020-05-29 19:36:13 · 287 阅读 · 0 评论 -
Codeforces Round #614 (Div. 2)(A~D)
题目链接A. ConneR and the A.R.C. Markland-N(思维)分析 题意有一个n层的楼,每一层都有一个饭店,又给了k个数,表示那些层的饭店是关着的,现在一个人在s层问最少经过多少个楼梯就可以到达一个饭店 思路就是从那个人所在的那一层开始,逐渐向外边楼层,开始枚举,一旦正枚举的楼层,没在k数字中出现,那么答案就到这一层所需要经过的楼梯数代码#include <bits/stdc++.h>using namespace std;void f原创 2020-05-27 23:19:17 · 175 阅读 · 1 评论 -
Codeforces Round #621 (Div. 1 + Div. 2)(A~D)
A. Cow and Haybales分析水题直接代码。。代码#include <iostream>#include <algorithm>#include <map>#include <set>#include <list>#include <queue>#include <deque>#include <cmath>#include <stack>#include <原创 2020-05-24 14:20:01 · 271 阅读 · 1 评论 -
Codeforces Round #618 (Div. 2)(A~E)
题目链接A. Non-zero (水题)代码#include <iostream>#include <algorithm>#include <map>#include <set>#include <list>#include <queue>#include <deque>#include <cmath>#include <stack>#include <vector>原创 2020-05-23 14:19:58 · 209 阅读 · 0 评论 -
Codeforces Round #642 (Div. 3)(A~F)
题目传送门A. Most Unstable Array(水题)代码#include <iostream>#include <algorithm>#include <map>#include <set>#include <list>#include <queue>#include <deque>#include <cmath>#include <stack>#include &l原创 2020-05-21 22:03:07 · 203 阅读 · 1 评论 -
Educational Codeforces Round 82 (Rated for Div. 2)(A~D)
A. Erasing Zeroes(水题)分析 题意给我一个长度为n的01字符串,问我最少删去多少个0,是字符串中所有的1连续? 思路直接找字符串中第一个1,和最后一个1直接的0的数量代码#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<vector>#inc原创 2020-05-20 13:40:32 · 183 阅读 · 0 评论 -
Codeforces Round #641 (Div. 2)(A~D)
A. Orac and Factors(规律)思路题意定义 f(n)为n的大于1的第一个因子的值,先我们要进行k次操作,每次操作令 n += f(n), 问经过 k 次这样的操作之后 n 的值变成了多少分析如果 n 为偶数,f(n)的值恒为 2,直接计算如果n 为奇数,f (n) 的值也为奇数,不过这个奇数的值需要我们自己算出来,这样第一次操作的时候 n += 奇数 = 偶数,那么之后无论进行多少次操作 n恒为偶数,怎f(n)的值恒为2代码#include<iost原创 2020-05-17 08:20:49 · 178 阅读 · 0 评论 -
Codeforces Round #619 (Div. 2)(A~C)
A. Three Strings思路题意:给我们三个长度分别n的字符串a、b、c,现在我们对于位置 1<=i<=n,我们要进操作令a[i] = c[i]或者b[i]=c[i],我们必须在这两种操作选择之间选择一个,不能不选,当我们一次让i=1,2,3,,,n,依次执行上述操作,问通过我们合理操作能否是 字符串a == b??分析:分类讨论一下就好了,具体看代码吧代码#include<iostream>#include<stdio.h> #incl原创 2020-05-15 18:05:58 · 799 阅读 · 0 评论 -
Codeforces Round #620 (Div. 2)(A~E)
A. Two Rabbits(水题)代码#include<iostream>#include<stdio.h> #include<stdlib.h> #include<cmath>#include<cstring>#include<algorithm>#include<vector>#include<string>#include<queue>#include<map&g原创 2020-05-15 16:51:11 · 248 阅读 · 1 评论 -
Codeforces Round #639 (Div. 2)(A,B,C)
A. Puzzle Pieces思路题意:给我们一个三面凸,一面凹的拼图块,问能否用这种拼图块拼成一个n*m矩形分析:直接找规律,发现只能拼成 只有一行或一列或2*2的图形代码#include<iostream>#include<stdio.h> #include<stdlib.h> #include<cmath>#...原创 2020-05-07 19:46:17 · 171 阅读 · 1 评论 -
Codeforces Round #630 (Div. 2)(A~E)
A. Exercising Walk题目传送门思路题意:在坐标系中给我们了一个矩形区域的左下角(x1,y1)(x1,y1)(x1,y1)、右上角的坐标(x2,y2)(x2,y2)(x2,y2),又给我们了一只位于矩形区域的猫的坐标(x,y)(x,y)(x,y), 现在我们要求 猫 分别在 左、右、上、下 四个方向上分别走 a、b、c、d 个单位距离,我们不规定猫走路的上下左右的顺序,但是...原创 2020-05-07 18:20:11 · 329 阅读 · 2 评论 -
Codeforces Round #632 (Div. 2)(A~D、F)
A. Little Artem思路题意:给我们一个nm的方格(2=<n,m<=100),我们可以在这个方格中图成白色或者黑色,现在定义:有效白色方格:方格被涂为白色,并且这个这个方格的四周至少有一个黑色方格;定义:有效黑色方格:方格为涂为黑色,在它的四周至少有个一个白色方格,现在我们要将这nm个方格涂成:有效黑方格的数量 = 有效白方格的数量 + 1,有多个方案输出任意一个...原创 2020-04-30 14:05:53 · 189 阅读 · 0 评论 -
Educational Codeforces Round 85 (Rated for Div. 2)(A~D)
A. Level Statistics#思路题意:给我们n次按时间顺序排序的刷图情况,对于每次刷图情况有两个参数 a、b,a:到目前已经刷了多少次图,b为到目前已经成功刷了所少次图 (注意对于每次刷图a的次数要+1, 可以是成功的刷过去了那么b的数值也要+1,也可以是没有刷过去失败了),让我们判断这个n刷图情况是否符合逻辑分析:水题一个,但是其中的逻辑还是要搞清楚的刷图数量a不...原创 2020-04-28 18:37:46 · 172 阅读 · 0 评论 -
Educational Codeforces Round 86 (Rated for Div. 2)(A~D)
A. Road To Zero(水题)总题目传送门思路:对两种操作的价格花费进行讨论一下相对大小,不同情况选择不同的方案代码#include<vector>#include<iostream>#include<iostream>#include<cstdio>#include<cmath>#include<cs...原创 2020-04-28 17:39:47 · 186 阅读 · 0 评论 -
Codeforces Round #633 (Div. 2)(A~D)
总题目传送门A. Filling Diamonds思路分析:cf的老套路了,一看 n<=1e9n<=1e9n<=1e9,根本没法求,只能找规律,在找规律的时候,注意利用之前的的结论,例如在数n = 3组合方案数的时候,可以利用 n==2时的结论代码#include<iostream>#include<cstdio>#include&l...原创 2020-04-26 23:01:35 · 198 阅读 · 0 评论 -
Codeforces Round #634 (Div. 3)(A~E)
A. Candies and Two Sisters(水题)所有题目链接代码#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<vector>#include<stri...原创 2020-04-25 22:30:21 · 157 阅读 · 0 评论 -
Codeforces Round #637 (Div. 2) - Thanks, Ivan Belonogov!
A. Nastya and Rice所有题目链接思路题意:给我 n个值他们的取值范围为[a,b][a,b][a,b],用给了区间范围[c,d][c,d][c,d],问这个n个值的总和可能在[c,d][c,d][c,d]之间?分析:这个明显是判读两个区间[n∗a,n∗b]、[c,d][n*a,n*b]、[c,d][n∗a,n∗b]、[c,d]是否相交的问题?我们可分类讨论连个区间是...原创 2020-04-25 21:32:19 · 227 阅读 · 0 评论 -
Codeforces Round #636 (Div. 3)(A~E)
A. Candies(简单公式转化)题目链接思路题意:给我一个表达式 :x+2x+4x+8x+...+2k−1=n,n<=1e9,k>=2x+2x+4x+8x+...+2^{k-1}=n,n<=1e9,k>=2x+2x+4x+8x+...+2k−1=n,n<=1e9,k>=2,给了我们n的值让我求是否存在 一个x值使上登山成立?分析:我可以对公式...原创 2020-04-23 20:06:46 · 208 阅读 · 0 评论