
codeforces
文章平均质量分 74
white_156
星河滚烫,烫死人间理想;
皓月星辰 冻死人间曙光
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
codeforce#938 (div3) 题解
记dp[i][j][k]为1个数为i个,2个数为j,3个数为k时赢的次数。当且仅当i个1,j个2,k个3XOR时dp[i][j][k] + 1(由于XOR性质,这里只需要判断奇偶再运算就可以),转移方程。然后我们拿着因数num对整个矩阵求余,看有没有一条路径从(1,1)到(n,m)上所有的元素都是num的倍数,如果有,那么就是候选答案,遍历所有因数后从候选答案选最大。记dp[i][j]为(i,j)是否是因数num的倍数。这个题其实也是枚举,但是根据题意,答案一定是(1,1)和(n,m)公约数的因数。原创 2024-05-04 16:55:46 · 1024 阅读 · 0 评论 -
codeforce#937 (div4)题解
但实际上,采用循环,当我们遍历到11的时候,现在1和10的状态我们都已经遍历过,因为11大于1和10的,所以也能保证在遍历11的时候是所有可能到达11状态的最优。现在树的最底层,也就是连接叶结点的那一层,所能承载的节点数是最多的,所以直接在这一层添加节点得到的树一定是高度最小的。其中状态now的二进制列序表示了有哪些歌曲已经加入了(这个和数组中的内容其实是重复,数组开个bool其实也可以,反正也能从now中恢复数量)。注意允许有一位的偏差,所以每次只比较两个值并不能确定哪个是正确的,例如上述条件,如果。原创 2024-05-04 15:06:17 · 1073 阅读 · 0 评论 -
codeforce#933 题解
如果在颜色A的合并点里走到了点v,同时v又连接B、C等颜色的边,虽然后续B、C颜色的合并也会重新遍历v的边,但是由于bfs的特性此时的遍历不会影响已经过的颜色A,也不会加入新的颜色(因为v涉及的所有颜色都在颜色A的合并点中加入到了队列),所以图中的每个点只需要访问一次,不需要重复访问。并没有按照题解中加边的思路,而是采用合并点的方式,从颜色的维度处理。需要注意的是在状态转移的时候,桥是有长度的,如果不建需要前d格中建桥花费最少的位置作为状态转移的初态。将染色边转化为一个新的染色节点连接到原有边的端点。原创 2024-04-24 02:53:37 · 1330 阅读 · 0 评论 -
codeforce #925 (div3) 题解
如果想要减少最终结果的位数,那么必须reverse之后产生前导零,例如10000,反转后变成1。注意我们的对手不傻,当我们把产生最多前导零的数字反转后,对手肯定会把产生第二多的拼接保护,防止最终结果位数减少,所以只能减去排序结果的偶数位。shape 3和shape 4就是造成不同拼接方式的关键,穿插在shape 1和shape 2的间隙,要注意shape 3是可以自拼接,并不是每个间隙只能塞一个。俩人玩游戏,一个能选一个数reverse,一个能选一个数拼接,看最后的结果能不能大于。原创 2024-04-15 01:01:35 · 729 阅读 · 0 评论 -
codeforce1679C. Rooks Defenders
传送门:线段树也不过如此这标准线段树模板题,但是多年没碰线段树,现在已经基本不会写了T^T首先是创建线段树。线段树是个满二叉树,如果从长度为n的数组上生成线段树,那么树节点个数m满足m≤2q+1−1 m \le 2^{q+1} - 1m≤2q+1−1其中2q>n∧2q−1<n2^q > n \land 2^{q-1} < n2q>n∧2q−1<n此外对于满二叉树来说,假设当前节点编号为n,则left node编号为2n2n2n,right node编号原创 2022-05-22 00:06:39 · 516 阅读 · 0 评论 -
codeforce1670C. Where is the Pizza?
传送门:今天想不出骚话定义一个长度为n的序列为:序列中仅包含数字1到n,且序列中没有相同的数字,也就是说1到n每个数字必须出现一次。现在有两个序列a和b,把这两个序列重新排列,仍然可以构成一个序列,称为c。重新排列的方式为:c[i]=a[i]c[i] = a[i]c[i]=a[i] 或 c[i]=b[i]c[i] = b[i]c[i]=b[i]且已知部分位置上序列c的值求有多少种方式能构成满足条件的序列c首先来考虑,当确定了序列c的一位后,影响范围会有多大。假设有如下序列,序列c第一位选定为原创 2022-05-08 20:52:15 · 446 阅读 · 0 评论 -
codeforce1673C. Palindrome Basis
传送门:今天不学习,明天变辣鸡简述一下题意:给出一个n,求有多少回文数相加的方式等于n。其中4 = 1+2+1 和 4 = 2+1+1为一种相加方式,要求方式间至少要有一个数字不同,才能叫做不同方式。首先,n<4e4的,而且还是仅考虑范围中的回文数,所以实际的数据量是很小的,不会超过1e3,所以写个最暴力的dp也才4e7的计算量,给2s的时间绝对够了。怎么判断回文数见代码实现。然后就是如何设计递推公式和dp数组了。这个我也没想出来,直接看的tutorial。记dp[k][m]表示前m个回文原创 2022-05-02 00:21:22 · 502 阅读 · 0 评论 -
codeforce1671C. Dolce Vita
传送门:誰にだって訳があって、今を生きって水题碰彩笔,我直接嘤嘤嘤思路很简单,就是挑着便宜的买,因为所有商品每次涨价幅度一样,所以预算不超,买的方式和上一轮一样;如果超了,不要最贵的。重点再于实现细节#pragma GCC diagnostic error "-std=c++11"#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define ll long long#define Pair pair<int,int>#d原创 2022-04-24 22:08:34 · 552 阅读 · 0 评论 -
codeforce1651C. Fault-tolerant Network
传送门:四月は君の嘘现在有两排电脑,a之间相互可达的,b之间相互可达,但是a,b之间不相连每个电脑有自己的值,将电脑ai,bj相连,花费abs(a[i]-b[j])。现在求将a,b两排电脑组成有容错网络的最小花费。其中有容错网络指,a或b中任意一台电脑断开与其他电脑的连接,其余电脑之间仍然保持连接首先我们随意连接序列a和b中两个点。设aia_{i}ai和bjb_{j}bj相连;apa_{p}ap和bqb_{q}bq相连,组成网络如图所展示对于这样的网络,不难看出断开[a0,ai][a_原创 2022-04-04 17:37:06 · 1002 阅读 · 1 评论 -
codeforces1110C. Meaningless Operations
题目链接 琪亚娜世界第一可爱! 给出a求对应值f(a)=max0<b<agcd(a⊕b,a&b)f(a)=\max _{0<b<a} gcd(a \oplus b, a \& b) f(a)=0<b<amaxgcd(a⊕b,a&b)根据XOR 与 AND 运算的不同,分为 g...原创 2020-12-12 21:08:19 · 173 阅读 · 0 评论 -
Codeforces Round #677 (Div. 3)题解
Problem A题目描述:题目解析:#pragma GCC diagnostic error "-std=c++11"#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define ll long long#define Pair pair<int,int>#define re return#define getLen(name,index) name[index].size()#define mem(a,b) m.原创 2020-11-18 15:38:16 · 187 阅读 · 0 评论 -
Codeforces Round #674 (Div. 3)题解
Problem A题目描述:第一层2个房间,以后每一层x个房间,求第n个房间在第几层题目解析:略略略#pragma GCC diagnostic error "-std=c++11"#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define ll long long#define Pair pair<int,int>#define re return#define getLen(name,index) name[原创 2020-10-17 21:44:41 · 378 阅读 · 2 评论 -
Editorial of Codeforces Round #672 题解
Problem A题目描述:将给出长为n的数组排序为不减序列,每次只能交换相邻位置的数,问能否在n(n−1)2−1\frac{n(n-1)}2-12n(n−1)−1次以内完成。题目解析:对数组排序的过程实际上就是一个冒泡排序的过程。冒泡排序的最坏复杂度是O(n2)O(n^2)O(n2),此时的序列是降序的,执行交换的次数恰好为n(n−1)2\frac{n(n-1)}22n(n−1)。所以这个题就转变为了求:数组是否为降序序列。但是这里还有一个问题没有解决:如果数组中有重复元素应当如何处理?...原创 2020-10-07 19:57:33 · 151 阅读 · 0 评论 -
codeforce1373D. Maximum Sum on Even Positions
この問題は本当かんたんです一个数组,最多只能反转一次连续子数组,求偶数位和的最大值难得能直接看出来的dp,感谢case提示的第二种反转方法等数位板到了补图#pragma GCC diagnostic error "-std=c++11"#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define ll long long#define Pair pair<int,int>#define re return#defi原创 2020-06-27 17:55:08 · 232 阅读 · 0 评论 -
codeforce1368D. AND, OR and square sum
問題は予想よりも簡単です#pragma GCC diagnostic error "-std=c++11"#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define ll long long#define Pair pair<int,int>#define re return#define getLen(name,index) name[index].size()#define mem(a,b) memset(a,b原创 2020-06-27 15:45:13 · 265 阅读 · 0 评论 -
codeforce1360F. Spy-string
今世界も悪くなった找出一个string,要和给出的n个string只有一位不同;不存在输出-1当我看到题解的时候,是久违的我是傻逼的感觉羊毛出自羊身上,答案出自输入里;而且数据量很小,就算把每一位所有的可能替换字母都试一遍也才260所以。。。暴力就行#pragma GCC diagnostic error "-std=c++11"#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define ll long long#define原创 2020-06-26 00:20:55 · 302 阅读 · 0 评论 -
codeforce1364C. Ehab and Prefix MEXs
このせかいもわるくない给一个a数组,找一个b数组,要求在集合{b1,b2,⋯ ,bi}\{ b_1,b_2,\cdots,b_i \}{b1,b2,⋯,bi}以外的整数中,最小的是aia_iai首先可以确定的一点是ai≠ai−1a_i\neq a_{i-1}ai=ai−1的时候,bi=ai−1b_i=a_{i-1}bi=ai−1。那么剩下的位置就有很大操作空间了,最简单的方法就是从amax+1a_{max}+1amax+1开始向剩余位置填数,这样造出来的序列一定满足要求,就是b原创 2020-06-24 21:59:21 · 324 阅读 · 0 评论 -
codeforce1368C. Even Picture
このせかい悪くない要求灰色色块之间连通每个灰色色块都要有偶数个灰色色块相邻(共边)只有n个色块,其周围4个色块均为灰色日渐沉迷水题无法自拔待我数位板到了补个图 如果还能记起来的话#pragma GCC diagnostic error "-std=c++11"#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define ll long long#define Pair pair<int,int>#define原创 2020-06-22 21:48:01 · 334 阅读 · 0 评论 -
codeforce1365D. Solve The Maze
この世界も悪くない把迷宫里坏人全困住,好人能走出来首先把坏人圈出来,然后统计与出口连通的好人的数量,据此判断。如果有坏人和好人相邻,那么一定是no。因为好人最后能出去,而坏人与好人连通且不能阻隔,所以最后坏人也就出去了。注意坏人与坏人相邻时,不能将这个相邻位置直接换成墙#pragma GCC diagnostic error "-std=c++11"#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define ll long lon原创 2020-06-17 22:59:45 · 367 阅读 · 0 评论 -
codeforce1366C. Palindromic Paths
题目链接给一个NXM的0-1矩阵,需要从(1,1)走到(n,m),每次只能向右或者向下走。求最少改动几次矩阵中数据,使得所有路径都是回文路径(路径上关于中心对称位置上数字一样)这是一个需要对数据预处理然后贪心的水题。对于所有路径来说,距离起点任意确定距离的点是又穷可枚举的。所以若使得所有路径均为回文路径,只需将对称位置点全部替换成1或0即可#pragma GCC diagnostic error "-std=c++11"#include <bits/stdc++.h>#define原创 2020-06-16 23:48:04 · 336 阅读 · 1 评论 -
codeforces1359C. Mixing Water
题目链接现有两水源,一个热水h度,另一个凉水c度,然后你往体积无限的桶里一瓢热的一瓢凉的倒,问倒几瓢离t度最接近显然这题答案只有两种,要么是2,要么2n+12n+12n+1。 证明如下: - 当混合了$2n$次之后,温度td=n(h+c)2n=h+c2t_d = \frac{n(h+c)}{2n}=\frac{h+c}{2}td=2nn(h+c)=2h+c 可见偶数次混合后温度恒定 - 当混合了$2n+1$次后,温度td=n(h+c)+h2n+1t_d = \frac{n原创 2020-06-07 14:50:23 · 204 阅读 · 0 评论 -
codeforce1363C. Game On Leaves
题目链接添加链接描述Ayush and Ashish在玩一个游戏:每轮中,每个玩家可以在一棵无根树上拆掉一个叶节点和从该节点出发的一条边(实际上就是让你拆点的时候拆的全面一点 )。当有人拆到指定结点为获胜。现在给出这个无根树的拓扑结构,求这局谁赢。这个题我第一感觉就像在问:公交车第一站上8个下2个,第二站上3个下5个,问公交车司机姓什么?#pragma GCC diagnostic error "-std=c++11"#include <bits/stdc++.h>#define I原创 2020-06-03 21:41:48 · 233 阅读 · 0 评论 -
codeforce1363B. Subsequence Hate
题目链接添加链接描述给出一个二进制字符串,要求不能其任意不连续子串含有‘010’ ‘101’如1001‘不符合要求,’1000‘符合要求符合要求的字符串转换为由连续0和连续1拼接.因此遍历所有位置,将该位置前全置1,该位置后全置0;或该位置前全置0,该位置后全置1#pragma GCC diagnostic error "-std=c++11"#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define ll long long#d原创 2020-06-01 18:24:57 · 286 阅读 · 1 评论 -
codeforce 1337C. Linova and Kingdom
许愿单抽出呆鹅#pragma GCC diagnostic error "-std=c++11"#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define ll long long#define Pair pair<int,int>#define re return#define getLen(name,ind...原创 2020-04-23 14:25:16 · 247 阅读 · 0 评论 -
codeforces1307C. Cow and Message
题目链接: 老师永远不知道学生上网课在干嘛系列找出某字符串中出现最多出现子串的次数,其中子串的下表需构成等差数列根据观察可得,出现次数最多的子串长度不会超过2,所以只需要统计这两种情况就可以了长度为1:统计字符串中出现的次数长度为2:DP,详见代码,我觉得的挺好理解的,就不解释了这个是上课写的,所以很有的地方是可以合并到一个循环里的,但是下课了就懒得改了#pragma GCC dia...原创 2020-02-26 12:13:59 · 220 阅读 · 0 评论 -
codeforces1311C. Perform the Combo
题目连接: 老师永远不知道在上网课的学生都在干嘛给出一个字符串,再给出m个子串,求子串和原串个字母出现的次数这题不是很难,最难的是好久不写把输出函数给忘了最朴素的算法就是把每个子串都走一遍累加,但是时间和空间复杂都太高,所以就想,能不能统计每个位置出现的次数。#pragma GCC diagnostic error "-std=c++11"#include <bits/stdc+...原创 2020-02-25 12:33:42 · 385 阅读 · 0 评论 -
Codeforces 1304C. Air Conditioner
题目连接: 我怎么又被挤出红莲了G有个餐厅,里面有个空调。这个空调有三个功能:off 保持将保持餐厅的温度不变heatin 加热在1分钟内将餐厅的温度提高一度cooling 制冷在1分钟内将餐厅的温度降低一度来G餐厅的每个客人都有其自己觉得爽的温度区间,只要在他进门的一刻,餐厅的温度在他的温度区间内,那他就觉得爽。现在G想知道能不能让所有人都爽这个题其实就是问...原创 2020-02-17 20:26:24 · 475 阅读 · 0 评论 -
codeforce988B substring sort
题目链接给出N个字符串,给他们排序,第一个是第二个的子串,第二个是第三个的子串,一直排到最后一个.问是否能实现这样的排序,如果能输出YES并且输出排序后的N个字符串;不能输出NO题目不是很难,主要就是匹配子串上,而且题目数据很小,暴力一下也能过.写这个水题主要是因为去年自己不会先按长度降序排列,这样一但出现不是子串的情况就能立刻判断不存在这样的排序.在这里用的字符hash判断是否是子串,h...原创 2019-11-26 22:19:31 · 206 阅读 · 0 评论 -
codeforces1043F Make It One
Janusz is a businessman. He owns a company “Januszex”, which produces games for teenagers. Last hit of Januszex was a cool one-person game “Make it one”. The player is given a sequence of n integers a...原创 2018-11-26 00:23:54 · 287 阅读 · 0 评论 -
codeforcs1165E. Two Arrays and Sum of Functions 贪心
题目链接 琪亚娜世界第一可爱给出两个数组,对数组B重新排序,记数组C[i]=A[i]*B[i],求C所有子区间的和的最小值。给定区间长度,C中元素对答案的贡献只与位置有关,也就是对于位置i来说,在后续的计算中,这个元素出现的次数只与位置有关。所以可以提前计算出现的次数num[i],并记C[i]=A[i]*num[i],找C中最大的元素和B中最小的元素相乘就是答案。由于计算最小的值,而不...原创 2019-05-17 14:45:20 · 469 阅读 · 0 评论 -
codeforces1167B. Lost Numbers
题目链接 琪亚娜世界第一可爱 现在有6个数{4 8 15 16 23 42}组成的序列,但是我们不知道这个序列的具体顺序。我们可以询问最多4次,每次询问有两个参数 i,j,返回 ai⋅aj。首先我们要通过4次询问确定5个数的位置,那么最后一个数也就确定了。所以我们每次询问{1 2} {1 3} {1 4} {1 5},然后求这4个数的gcd。但是注意!当GCD(a2,a3,a4,a5)...原创 2019-05-18 15:43:43 · 371 阅读 · 0 评论 -
codeforces1166E. The LCMs Must be Large
题目链接 琪亚娜世界第一可爱 现在有两个人,Swiper和Dora,在m天中,每天Swiper先从n个位置上取一些数,剩下的就是Dora的数,要求在这个m天中,每天Swiper取出的数的lcm都要比Dora取出的要大,现在询问是否存在这样的一个排列n。我现在还不是特别清楚这个题为什么要这么做。。。首先有一点是可以明确的,就是在这m天中,Swiper取的数要有交集,如果没有的话,一定是不存...原创 2019-06-01 12:45:58 · 347 阅读 · 0 评论 -
codeforces1167E. Range Deleting
题目链接 琪亚娜世界第一可爱给出长度为n的以一个数组,数组中的元素最大不超过x。现在你可以执行一个操作 f(l,r),将数组中所有大于等于l且小于等于r的元素都删除,现在求有多少种方案可以使执行完这个操作后的数组为非减顺序#pragma GCC diagnostic error "-std=c++11"#include <bits/stdc++.h>#define INF...原创 2019-07-22 23:20:16 · 367 阅读 · 0 评论 -
codeforces575C. Robot Breakout
你手中挥舞的大楼,是我此生不变的信仰,唯我一方大爷永世长存 上面是题目链接,这个不是你有好多机器人跑路了,你知道他们的坐标,由于故障这些机器人在某些方向上不能动,但是你知道他们中的每一个可以往哪个方向跑。现在你要找一个坐标,使得所有机器人都能到这个位置。在这里思路是找每一个机器人可以到达的范围,然后这些范围相交,找到答案的范围即可。时间复杂度O(n)。首先根据每一个机器人的信息确定其可移...原创 2019-08-11 13:34:04 · 243 阅读 · 0 评论 -
codeforces575D. RGB Substring 递推
许愿能天使 一开始的时候给你一个长度为n的字符串s,然后要求你改动最少的次数,使得这个s中有长度为k的字串,能与无限长字符串"RGBRGBRGBRGB…"的某一部分匹配。首先,可以和"RGBRGB…"匹配的只能是RGBRGBGBRGBRBRGBRG所以求s中每一个位置上,改动成上述三个字符串样式的最小次数即可。时间复杂度O(nk),显然过不了,所以要想一想能不能优化比较的过程。...原创 2019-08-11 19:20:02 · 187 阅读 · 0 评论 -
codeforces 1110D. Jongmah
You are playing a game of Jongmah. You don’t need to know the rules to solve this problem. You have n tiles in your hand. Each tile has an integer between 1 and m written on it.To win the game, you w...原创 2019-09-22 14:04:28 · 358 阅读 · 2 评论 -
EducationalCodeforcesRound60C. Magic Ship
You a captain of a ship. Initially you are standing in a point (x1,y1) (obviously, all positions in the sea can be described by cartesian plane) and you want to travel to a point (x2,y2).You know the...原创 2019-03-04 19:44:20 · 308 阅读 · 0 评论 -
codeforces1149B. Three Religions
题目链接 琪亚娜世界第一可爱 这个题,题意非常的扭曲,就是给你一个字符串S,然后一位一位的给你三个字符串A B and C。问在给出一位后,A B C组成的序列是不是S的一个子序列(或者说是一个不连续的子串)。记pos[i][j]为在字符串S中,位置i以后,第一次出现字符 j+‘a’ 的位置。记dp[i][j][k]为第一个字符串A匹配到第i位,字符串B匹配到第j位,字符串C匹配到第k位...原创 2019-09-22 14:03:25 · 261 阅读 · 0 评论 -
codeforces1165D. Almost All Divisors
题目链接 琪亚娜世界第一可爱 给出n个因数,求最小的数num,使得除1和num以外的因数都在给出的这n个数中,如果不存在输出-1 。很水的一道题,但比赛的时候总在想怎么用lcm做,然后因为不知怎么预处理-1的情况,就一直卡。但实际上,对给出的n个数排序,从两端各取一个数,如果存在的话,这两个数的乘积一定是相同的。然后再判断是否所有的因数都在这n个数中,最后输出答案复杂度的话,主要在最...原创 2019-05-19 12:49:25 · 347 阅读 · 0 评论 -
codeforces1107D. Compression
题目链接 琪亚娜世界第一可爱 给出矩阵A,构造矩阵B,满足:i∈[1,n],j∈[1,n]且nmod  x=0,满足A[i][j]=B[⌈ix⌉][⌈jx⌉]i\in [1,n] , j\in [1,n] 且n\mod x =0,满足A[i][j]=B[\lceil\frac{i}{x}\rceil][\lceil \frac{j}{...原创 2019-05-07 09:11:52 · 399 阅读 · 0 评论