Codeforces
文章平均质量分 83
方哲Beans
一只小蒟蒻
展开
-
Codeforces Round 875 (Div. 2)A~E
然后枚举a[i],用f数组记录每个选择的贡献,先求相同a[i]对应的b[i]的贡献,再求不同的贡献,注意每个循环最后f数组的处理。给出n和k,有k组区间l,r,要求满足每个区间都是匹配的括号序列,且自己整体也是一个匹配的括号序列,长度为n,求满足条件的括号序列的数量,答案对998244353取模。如果两个点都未绘制过,则开始一次新的操作,问建成这棵树需要的操作数。给出两个长度为n的数组a,b,现在每次可以取出任意一个数组的第一个元素,放到c数组的后面,c数组一开始为空,求c数组连续相等的最长子串长度。原创 2023-05-29 13:56:21 · 282 阅读 · 0 评论 -
Educational Codeforces Round 149 (Rated for Div. 2)A~D
这里可以用栈来匹配括号序列,因为可以反转,而且要颜色最少。对于合法序列,不难发现,最多只需要花费两种颜色即可,先全部初始化为颜色2,对于正向匹配的括号,染成颜色1,最后判断,如果存在颜色2,说明存在逆向匹配的括号,这时候再重新初始化为2,将逆向匹配的括号染成1即可,因为正向匹配的括号不兼容逆向匹配的括号,而逆向匹配的括号兼容正向匹配的括号。给出一个括号序列,定义漂亮序列为匹配括号序列或者反转之后是匹配括号序列的序列,现在要求染色,使得相同颜色的括号组成漂亮序列,问最少需要多少种颜色即每个括号染的颜色。原创 2023-05-26 15:38:49 · 228 阅读 · 0 评论 -
Codeforces Round 874 (Div. 3)(A~G)
首先用并查集将a[i]和i连起来,然后每个联通块都是一组舞蹈,最多数量就是联通块的数量,因为每个人可以找两个人组合,所以环是无法再拉入人的,因为每个人都有两条边,而当一个联通块里面有链,它就可以与其他的包含链的联通块组合起来。因为n <= 2000 ,所以可以暴力,因为字典序要最大,所以得找到最大的数,把它放到最前面,因此,选择的区间右端点r得固定在最大数前面,因为必须要进行一次操作,所以最大数因该从i==2开始找,找到右端点后,枚举左端点l即可。.如果最后返回到根节点,点数不够3,也输出-1,原创 2023-05-20 12:06:55 · 161 阅读 · 1 评论 -
Codeforces Round 873 (Div. 2)
i,要求找到一个最大的k,你可以交换a[i]和a[i + k],使得a[i] == i。对于a[i],在b中找到第一个大于等于它的数,前面的小于它的位置都可以放a[i], 但是得减去前面已经放了数的位置。随后对于每个位置i,找到它前面的合法区间和后面的合法区间,ans减去前面的合法区间*后面的合法区间。随后对于每个位置i,找到它前面的合法区间和后面的合法区间,ans减去前面的合法区间*后面的合法区间。先初始化答案,即对于每个i,ans += (i - 1) * ((i - 1) + 1) / 2。原创 2023-05-15 13:36:50 · 454 阅读 · 2 评论 -
Educational Codeforces Round 148 (Rated for Div. 2)(A~E)
Educational Codeforces Round 148 (Rated for Div. 2)New Palindrome题意:给你一个回文串,长度不超过50,问能不能重新排列出一个新的回文串。如果可以输出YES,否则输出NO。思路:直接找有没有不同的对,有就输出YES。因为不同的对可以调换位置。代码:#include<iostream>#include<queue>#include<cstring>#include<vector>原创 2023-05-13 12:48:30 · 258 阅读 · 0 评论 -
Codeforces Round 872 (Div. 2)
分三种情况考虑,-1先坐,-2先坐和正整数先坐。假设(1, 1)放最大值,那么(1, 2)和 (2, 1)放最小和第二小,当然,最小的要放在贡献最大的那个点,贡献最大的点的贡献次数为mm = max(n * (m - 1), m * (n - 1)), 那么另一个点为n*m - mm次。题意:给出n*m的空白矩阵和n*m(2原创 2023-05-10 14:36:59 · 241 阅读 · 7 评论