
codeforces小记录
文章平均质量分 56
记录在cf中刷题的思路
knookda
这个作者很懒,什么都没留下…
展开
-
CF大陆斗C战士(三)
如果一个子数组的数组元素之和等于数组元素个数,则称其为好子数组。给你一个数组,问其中的好子数组有多少个。给你两个数组a和b,规定c[i]=a[i]&b[j],找到c1 | c2…注意当前缀和本身为0时,本身就作为一种方案。全为1的情况只需要找出长度相等且满足要求的两段即可,得到的数值是一样的。一个子数组的数组元素之和等于数组元素个数为好子数组,那么如果将。不变,我们只需找到置否有相应的a[i]与b[j]配队满足即可。的范围最小值为0而最大值应为a中元素相或之和。,若使子数组和为0则需要减去和同样为。原创 2023-03-08 15:37:33 · 1725 阅读 · 1 评论 -
Codeforces Round 856 (Div. 2) A — C
已知n个正整数的数组。在一次操作中,您可以选择数组中的任意数字并向其添加1。一个序列的得分定义为序列数字的乘积除以序列元素个数的阶乘。题目要求分别找出a1~ai中是的得分最大的子序列的元素个数(1原创 2023-03-06 20:00:36 · 1048 阅读 · 1 评论 -
Codeforces Round 855 (Div. 3) A — D
一副牌有n张,每一张牌的特点是它的力量。如果这张牌是英雄牌,那么你的奖励牌组中最上面那张牌的能量会被加到他的能量中(如果它不是空的),之后英雄会被加到你的军队中,使用的奖励会被丢弃。有一个由大小写字母组成的字符串,每一次操作可以将一个字母的大小写改变,问在操作次数不大于k次得情况下,大小写字母相皮匹配的最大对数是多少。我们可以遍历删除每两个相邻字符,若相邻两次操作去掉的字母是一样的则对答案没有贡献。可以使用优先队列解决问题,将数字不断加入到队列,遇到零的时候就将队首的数值累加,并弹出队首。原创 2023-03-04 10:17:16 · 610 阅读 · 0 评论 -
D. Equalize Them All
给你 n 个数,每次操作可以选择两个相邻的数字,并把他们都变成其中一个数字。问最少需要通过几次操作能使 n 个数字变的全部相等?要是操作数最小,我们只需要从出现次数最多的数字开始向两边变化,每次记录操作的下标以及使用操作的编号即可。原创 2023-03-02 16:06:37 · 278 阅读 · 0 评论 -
C. Gourmet Cat
波利卡普有一只猫,周一、周四和周日他吃鱼,周二和周六他吃炖兔子,在其他的日子里,他吃鸡排。波利卡普打算去旅行,他已经收拾好了背包。他的背包里有:a个鱼类食物,b个炖兔肉,c个鸡排;波利卡普必须选择一周中的某一天开始他的旅行,让他的猫可以尽可能长时间地吃东西打印出猫在一次旅行中不需要额外购买食物的最大天数。先算出食物可以满足的整周数,剩下的再枚举从那一天开始可以坚持的天数,可以通过数组记录从每天出发的答案,选出最大值。原创 2023-03-02 16:03:58 · 272 阅读 · 0 评论 -
Educational Codeforces Round 143 (Rated for Div. 2) A — C
n种茶将被n个品茶人品尝,a[i]表示某类茶准备了多少,b[i]表示某个人一次最多可以喝多少。在第一步中,第i个品茶员品尝第i种茶。当存在满足k为最大值和k为最小值的数段都存在才可以通过删除操作使得k点被覆盖的次数最多,否则一定会有临近k其他的数和k被覆盖的次数相同。有两个有红蓝两种颜色组成的塔,每次操作可以将其中一个塔顶的色块移动到另一个塔顶上,问能否使两个塔没有相同颜色相邻的情况。分别给出n个数段的最大值与最小值,每次操作可以删除某个数段,问能否通过删除某些数段使得k点被覆盖的次数最多。原创 2023-02-17 10:43:15 · 787 阅读 · 0 评论 -
Codeforces Round #852 (Div. 2) A — C
你知道在这个月的第一天,1 k土豆的价格是a个硬币,第二天是b个硬币,可以买到任意整数公斤的土豆。幸运的是,“第二食物”宣布了土豆促销活动,仅在每月的第一天有效——每购买m公斤土豆,就可以获得1公斤的礼物!不幸的是,Fedya丢失了一个数组,但他记得其中局部最大值x和局部最小值y的和。有一个排列,想找到这样一个子段,它的末尾的元素都不是整个子段的最小值或最大值。.长度为n的排列是由n个从1到n的不同整数以任意顺序组成的数组。峰值和谷值之和应该是唯一的与峰值和谷值数量无关,可以看作一个折线图。原创 2023-02-13 15:27:18 · 679 阅读 · 0 评论 -
Codeforces Round #851 (Div. 2) A — C
将整数1到2n配对(即每个整数应该恰好在一对中),以便每个匹配对的和都是连续且不同的。形式上,让(ai, bi)是你匹配的对,需满足s={a1+b1,a2+b2,…,an+bn},s[i+1]−s[i]=1。非负整数a的数字和是其每一位数字数字加起来的结果。找出两个数满足:x+ y = n,且x和y的数字和最多相差1。可以证明,这样和y总是存在的。为偶数时,我们可以在奇数成立的情况下加上缺少的数字,可以发现无论怎样调整配队,都会出现不满足条件的配对。来说,由于c 语言向下取整得特性,除以二我们可以得到。原创 2023-02-10 16:50:37 · 633 阅读 · 1 评论 -
CF大陆斗C战士(二)
我们知道,如果他沿着一条路径的一个以前未被访问的部分移动(即这段路径是第一次被访问的),那么这种移动的时间是5秒。对于每个朋友,f值都是已知的:如果第i个朋友不知道他想把礼物送给谁,填补fi=0处使得每个朋友只赠送一份礼物,也只收到一份礼物,并且没有朋友将礼物送给自己。给定一个长度为n的排列p(长度为n的排列是一个长度为n的数组,其中从1到n的每个整数恰好出现一次)。因有一对一的前提,所以我们可以将未送出的和未收到的分别存储,再进行匹配,若碰到同一个人的情况,换一个匹配即可。,以此类推则第一次的操作数为。原创 2023-02-07 19:07:17 · 491 阅读 · 1 评论 -
Codeforces Round #850 (Div. 2) A1 — C
Codeforces Round #850 (Div. 2)爱丽丝有n张牌,每张牌都是白色的,爱丽丝把牌发给自己和鲍勃,同时从牌堆顶端发几张牌,顺序如下:一张给自己,两张给鲍勃,三张给鲍勃,四张给自己,五张给自己,六张给鲍勃,七张给鲍勃,八张给自己,以此类推。换句话说,当在某个步骤中没有足够的牌时,Alice将所有剩余的牌都分发给当前玩家,这个过程就会停止。问最后爱丽丝和鲍勃有几张牌?题目数据范围不是很大,直接通过暴力模拟即可,通过一个计数器来存储每次应该加几张A2. Alternating Deck原创 2023-02-06 10:03:38 · 480 阅读 · 0 评论 -
Codeforces Round #838 (Div. 2) A — C
如果一个01串的所有奇数位置 2i - 1 的数字满足: 当前数字在[1,2i -1] 出现了至少i次,则称该串为好。现在给定一个01串 ,f(s [1,i],)表示将 前面的 个数字放在一个长度为 2i -1的01串的奇数位,然后填补这个01使其变成好,填补方法的数量则为 f(s[1,i])。如果对于所有对i和j (1 < i, j < m), max(bi, bj)能被min(bi, bj)整除,则m个正整数数组b是好的。可以证明,在问题的约束条件下,这样的操作序列总是存在的。的思想进行思考,假定。原创 2023-01-17 21:12:22 · 481 阅读 · 0 评论 -
Codeforces Round #833 (Div. 2)A — C
除以二向上取整即为答案B. Diverse Substrings题目大意非空数字字符串中每个字符的出现次数不超过其中不同字符的数量,则该字符串是多样化的。求一个字符串多样化子串的个数。一共有十种字符,所以满足条件的字串最长长度为100,,所以只需要遍历长度为100以内的子串即可,结合数据范围我们可以直接采取暴力解法,判断每一个子串是否满足条件。C. Zero-Sum Prefixes题目大意数组的评分定义为从前缀和为零的,索引 i (1≤i≤n)的个数。每个可以多次执行以下操作:选择一个的索引原创 2022-12-03 19:40:22 · 380 阅读 · 0 评论 -
Codeforces Round #825 (Div. 2) A-C1
Codeforces Round #825 (Div. 2)、有两个字符串 a 和 b,问最少用几次操作可以将 a 变成 b。每次操作有两种选择统计需要改变的字符个数即可,顺序需要变化的话加一。要注意完全相同的情况。B. Playing with GCD题目描述有 n 个数字的数组 a, 元素满足,问是否存在满足要求的含 n+1 个元素的数组设定为 a 与 b 的最小公倍数,有下图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FaHDXARJ-1665479768933原创 2022-10-11 17:16:35 · 258 阅读 · 0 评论 -
Codeforces Round #824 (Div. 2) A-B
在 n 天工作日中我们可以安排3天休息日,但是两两休息日不可相邻,且最后一天一定是休息日,第一天不可以是休息日,问在n天的工作周期中,三个工作段。有 n 块陈皮,我们可以把每一块陈皮分成两部分。对于陈皮中的任意两块。若将三个工作段看作从小到大的顺序的话,我们可将第一段认为是。初始时每块陈皮的尺寸是按照从小到大给出的,所以对于最小的数。天,我们将这些天数分配即可,平均一段。为最少进行分块的次数是多少。则对于其他的陈皮来说应。天,即刻的最大差值为。,我们要保证不能出现。原创 2022-10-03 20:03:55 · 364 阅读 · 0 评论 -
C. Cyclic Permutations
对于每个 1≤i≤n,找到最大的 j,使得 1≤jpi,并在节点 i 和节点 j 之间添加一条无向边。对于每个 1≤i≤n,找到最小的 j,使得 ipi,并在节点 i 和节点 j 之间添加一条无向边。则在丹凤序列中不会出现此类情况,也就是说所有单峰序列都是不合法的。给你 1~n n个数。个不同数的全排列为n的阶乘。个不同数的单峰序列数为。综上,我们答案可以由。原创 2022-09-19 20:32:00 · 152 阅读 · 0 评论 -
Codeforces Round #813 (Div. 2) A~C
有序排列中,相邻两个数互质,最小公倍数为它们的乘积。前 k 个数字最小则使前 k 个数字为 1~k 即可,出现一个大于 k 的数字即需要交换一次。给出一串排列,问通过几次交换数字可以使前 k 个数字之和最小。最小的含 n 个数字的排列。排列中每个数字只出现一次。给出一串数字,问通过几次操作(将某个数全部变为零)可以将序列从小到大排列。也受到影响,也需要加上 u v 之间之前未出现过的数字种类。当其本身无序时,从后往前找到第一个大于最后一个数字的数。,并求出他之前的数字种类,再次过程中若。...原创 2022-08-14 08:48:55 · 164 阅读 · 0 评论 -
Educational Codeforces Round 130 (Rated for Div. 2) A--C
用贪心的思维则我们尽可能选择大的,这样能使得其中y个较小的值最大化。对于所免费获得的价值,我们可以用前缀和来计算,从而达到降低时间复杂度的目的。如果顾客购买了至少x件商品,最便宜的y件商品都是免费的。问字符串a能否通过两种操作变成b操作1(将ab变成ba)操作2(将bc变成cb)此外根据观察可以发现,a的位置只能向后移动,c的位置只能向前。所以在字符串a中的字符。来改变字母的相对位置,我们首先可以去掉两个字符串当中的。位置一定小于等于在字符串b中的,字符。两个操作的共性都是通过。...原创 2022-07-31 16:46:56 · 321 阅读 · 0 评论 -
Codeforces Round #810 (Div. 2) A--C
要么为奇数要么为偶数。为偶数时,全部邀请即可则·val·为0。m为奇数时,则考虑不邀请谁的问题,以下成每一对朋友关系为一条边。(最上与最下视作相邻,最左与最右是做相邻)。在派对中有n个人,其中有m对朋友。每一对朋友吃一个蛋糕,一对朋友若其中一个未被邀请则不吃蛋糕。由图例我们可以得到启发,只要的满足相邻相同颜色至少为两行(列)即可满足题意,具体见代码。构造一个含1~n的长度为n的数列,满足p[i]/i有最小值。,问要使需要的蛋糕为偶数的情况下最小的不快乐值是多少。枚举符合条件,记录最小值的即可。...原创 2022-07-25 16:37:00 · 181 阅读 · 0 评论 -
C. String Equality
能否通过以下操作变成字符串。原创 2022-07-14 21:26:41 · 147 阅读 · 0 评论 -
B. Find The Array
题目大意对于给定的a数列需要构造一个b数列使得b数列相邻元素之间存在整除,并且要满足所给条件式原创 2022-07-07 14:43:55 · 158 阅读 · 0 评论 -
B. Restore Modulo
大意判断是否存在和使数列中的每一个数都满足并且。若不存在则输出。 存在且的值可为任意大输出,否则输出m与c的值等价于由可知,只有当时,才可能有满足条件的值当数列只有一个数时,有满足条件且m可取任意值当差值的个数等于1时,m的取值可以任意大大于2时无解,加一个加数最多能改变一类余数恰好等于2时还要再验证是否满足条件m取值应为两类差值的绝对值相加,c应为正数cin >> t;while(t --){solve();}}......原创 2022-07-05 16:03:51 · 140 阅读 · 0 评论 -
C. Little Alawn‘s Puzzle
给定两行序列,每行序列数字为1~n,且各行各列不存在相同数字。可以对某一列数字进行交换,问符合条件的序列(各行各列不存在相同数字)有几组。交换某一列数字可能会影响其他列,为了满足条件则所受影响的列也要进行交换。将互相影响的一系列看作一个闭环的话,求出有个闭环,则得到的符合要求的组数为(每一个都有换与不换两种选择)闭环个数可以用并查集求得,用快速幂得到最终结果...原创 2022-06-21 14:26:27 · 154 阅读 · 0 评论 -
D. Backspace
字符串中中的字母可以当使用,问字符串能否通过恰当的的删除操作得到字符串原创 2022-06-10 20:55:47 · 151 阅读 · 0 评论 -
A. And Matching
A. And Matching的一篇题解原创 2022-06-01 14:51:36 · 187 阅读 · 0 评论 -
D. Twist the Permutation
原题题目大意有一个长度为n,数组元素为1~你懂的数组数组。第 i 次操作可以将前 i 个元素循环右移任意个位置,求每次操作移动几个位置可以得到所给数组思路第i次操作只对前i个元素进行循环右移,可发现与i+1及其之后的元素无关我们可以发反过来想,确定第i个元素移动几次之后求第i-1个元素的移动位置时就可以不用管了所以从最后一个位置开始枚举确定第i个元素的移动次数后,要将前期前面的数字恢复到i移动之前的状态,可以理解为向左移对应的位置code#include<bits/stdc++原创 2022-05-29 15:23:46 · 269 阅读 · 0 评论 -
A. Weird Sum
原题题目大意求每对相同数字的曼哈顿距离之和 曼哈顿距离:abs(x1 - x2) + abs(y1 - y2)分析有重复数字的情况下考虑两两组合似乎比较麻烦,但是结合曼哈顿距离的定义以及分坐标方向来看 就会容易些(一下以四个点的情况举例)对于x2来说他参与的点对x方向的距离和为x2-x1对于x3来说他参与的点对x方向的距离和为(x3-x1)+(x3-x2) = 2*x3-(x1+x2)对于x4来说他参与的点对x方向的距离和为2*x4-(x1+x2+x3)可推得:第i个点的贡献为(i-1)原创 2022-05-10 21:05:22 · 195 阅读 · 0 评论 -
B. Charmed by the Game
原题思路一个人只有先发后接或者先接后发两种情况,也对应另外一个人的两种情况所以只需要考虑其中一个人(称作小明)的两种情况即可对于小明来说他发球的次数有q1 = (a + b) / 2 与 q2 = a + b - q1两种设他发球赢了i次则接球(即打破对方接球)a - i次在他发球输了q - i次即被对方打破q - i 次两种情况均遍历一遍即可得到结果选用了内置排序与去重的set<>容器代码#include<bits/stdc++.h>using原创 2022-04-04 20:22:08 · 603 阅读 · 0 评论 -
A. AquaMoon and Two Arrays
题目大意通过将i位置的数做+1操作, j位置的做-1操作使得a数组变成b数组可以转变的话输出操作步数以及每次操作所选的i, j不可以转变的话输出-1思路通过一篇大佬的博客顿悟若能完成转换两数组差值之和必为0通过差值正负按次输出即可代码#include<bits/stdc++.h>using namespace std;const int N = 110;int n, m, t;int a[N], b[N], c[N];int main(){ ..原创 2022-03-28 19:50:13 · 157 阅读 · 0 评论 -
连点成图(1)
将n个点连成一张无向图的特殊情况(无重边与自环)完全图此种情况边数最多,为n(n-1)/2条边完全图:每个点与其他各个点连一条边菊花树以一个点为中心其他所有点向他连边此种情况边数最小为n-1条边...原创 2022-03-24 16:37:13 · 440 阅读 · 0 评论 -
C-Grandma Capa Knits a Scarfv
原题目题目大意选择一个字母,通过在字符串中删除该字母使其变成回文串而且要求删除的字母数尽可能小思路数据范围较小可以暴力解决问题依次遍历每一个字母看他是否能通过操作得到回文串在选出操作数最小的情况具体步骤代码(含细节注释)//数据较小可以遍历每一种情况暴力求解#include<bits/stdc++.h>using namespace std;const int N = 1e5 + 10, INF = 0x3f3f3f3f;int n, m, t;i原创 2022-03-24 15:37:51 · 295 阅读 · 0 评论 -
B. Build the Permutation
原题题目大意定义q[i - 1] < q[i] > q[i + 1]为局部最大值q[i - 1] > q[i] < q[i + 1]为局部最小值问能否在所给的数据范围内找到一个满足局部最大值个数a和局部最小值个数b要求的序列思路将数从小到大排列,按最大最小依次拿出实践发现这样可得最佳状态a和b满足a + b <= n - 2 abs(a + b) <= 1不满足此条件的则无法找到相应序列代码#include<bits/stdc++.h&原创 2022-03-14 20:11:05 · 330 阅读 · 0 评论 -
C. Division by Two and Permutation
题意通过将所给数组中的数进行u次除2操作(向下取整)得到1-n中所有的数思路枚举每一个数,将它除2直到小于等于n,然后判断它是否得到过,是则继续除,不是则加到已经得到的数的数列中,循环往复,最后遍历是否每一个数都取到代码//先固定到所需范围再判断是否能构造出#include<bits/stdc++.h>using namespace std;void solve(){ int n, u; cin >> n; vector<int&g.原创 2022-03-03 16:07:33 · 179 阅读 · 0 评论 -
【无标题】
题意通过将两位数相加来替换位数来改变数字的大小,问能改出来的最大数字是多少代码+注解//相邻两数相加大于10,但每个数会变小要从后往前遍历//相邻两数相加小于10,但每个数会变大要//所以能用第一种情况就用第一种,不能的话操作前两个数即可#include<bits/stdc++.h>using namespace std;int n, m, t;void dn(string s){ int len = s.size(); for(int i = .原创 2022-03-03 14:43:12 · 120 阅读 · 0 评论 -
B. MEX and Array
原题目题目大意给定一个序列。求序列字段和最大(按所给公式求)需要明确的问题mex的含义- 一段序列中不存在的最小非负整数如何求所有子序列-受到大佬博客的启发用vrctor容器可以得出 for(int i = 0; i <n; i ++)//枚举开头 { for(int j = i; j < n; j ++)//枚举结尾 { vector<int> q;原创 2022-03-01 19:24:59 · 354 阅读 · 0 评论 -
C-jumping takahashi
C - Jumping TakahashiTime Limit: 2 sec / Memory Limit: 1024 MBProblem StatementTakahashi is standing at the coordinate 00 on a number line.He will now perform NN jumps. In the ii-th jump (1 \leq i \leq N)(1≤i≤N), he moves a_ia**i or b_ib**i in the posi原创 2022-02-26 15:58:04 · 1156 阅读 · 0 评论 -
B. Love Song
Petya once wrote a sad love song and shared it to Vasya. The song is a string consisting of lowercase English letters. Vasya made upqqquestions about this song. Each question is about a subsegment of the song starting from thell-th letter to therr-th l...原创 2021-12-20 11:09:28 · 306 阅读 · 0 评论 -
A. Anti Light‘s Cell Guessing
You are playing a game on an×mn×mgrid, in which the computer has selected some cell(x,y)(x,y)of the grid, and you have to determine which one.To do so, you will choose somekkand somekkcells(x1,y1),(x2,y2),…,(xk,yk)(x1,y1),(x2,y2),…,(xk,yk), and ...原创 2021-11-26 13:43:37 · 772 阅读 · 0 评论 -
B. Kalindrome Array
An array[b1,b2,…,bm][b1,b2,…,bm]is a palindrome, ifbi=bm+1−ibi=bm+1−ifor eachiifrom11tomm. Empty array is also a palindrome.An array is calledkalindrome, if the following condition holds: It's possible to select some integerxxand delete so...原创 2021-11-26 19:10:03 · 880 阅读 · 0 评论 -
A. Mathematical Addition
A. Mathematical Additiontime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputIvan decided to prepare for the test on solving integer equations. He noticed that all tasks in the test have the原创 2021-11-24 21:13:48 · 323 阅读 · 0 评论