![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
codeforces
文章平均质量分 73
菜菜菜菜oo
zzu大三计科蒟蒻
展开
-
22 Dytechlab Cup 2022C. Ela and Crickets(思维、找规律、模拟)
的矩阵的剩余的那个点(题中给了3点个坐标,确定的正方形的那个),当其他点的横纵坐标与该点的横纵坐标的差值都使偶数的时候是不可达的,其余的点都是可达的。当拐点在角落时,只有目标点的横纵坐标其中的一个和它相同时,这时才可能到达。可以发现,当拐点在角落时的情况和不在角落的情况是不同。否则,我们就简单的例子可以看一下,当一个。原创 2024-03-11 17:48:40 · 508 阅读 · 0 评论 -
21 Educational Codeforces Round 136 (Rated for Div. 2)Knowledge Cards(树状数组、set、+思维、数字华容道)
我们只需要统计一下,一个数前面比他小的数有多少个,然后取个最大值,就是最大的要使这个牌按顺序到达终点,其它牌不能到达终点的情况,这时应该时满足。其实并不是,参考数字华容道,实际上是只要除了终点和起点,以及自身这个方格。我们只需要留出一个空格就可以使任意方格移动到任意位置。个方格空着,这样才能保证任意一张牌能从起点到终点。最开始猜了个结论错了,猜的是必须要有。所有的就都可以满足。原创 2024-03-07 08:10:21 · 339 阅读 · 0 评论 -
19 SWERC 2022-2023 - Online Mirror (Unrated, ICPC Rules, Teams Preferred)L. Controllers(数学公式+瞎搞)
【代码】19 SWERC 2022-2023 - Online Mirror (Unrated, ICPC Rules, Teams Preferred)L. Controllers(数学公式+瞎搞)原创 2024-03-04 16:32:16 · 402 阅读 · 0 评论 -
18 Codeforces Round 853 (Div. 2)C. Serval and Toxel‘s Arrays(算贡献)
考虑当前版本对答案的贡献,首先这个版本和其他版本取交集至少会包含它本身所以直接先把。给加上去,然后再考虑,前面版本中出现的数当前版本并没有出现的这一部分如何去维护。这种题目做多了应该很容易从贡献的角度去考虑了。下面是怎么去维护这个东西的。原创 2024-03-04 14:57:47 · 387 阅读 · 0 评论 -
16 Educational Codeforces Round 142 (Rated for Div. 2)C. Min Max Sort(递归、思维、dp)
我们的答案应该是上一步之前的所有操作次数加上最后一步的操作次数。很不错的一道题目,不过脑电波和出题人每对上,已经是有序的就不需要进行操作了。我们考虑最后一步是怎么操作的。结尾的最长连续上升序列的长度。不是有序的则需要进行一次操作。如何判断是不是有序的呢?原创 2024-03-03 17:17:36 · 934 阅读 · 0 评论 -
15 Educational Codeforces Round 143 (Rated for Div. 2)C. Tea Tasting(前缀和+差分+二分、贡献枚举)
这里在实现的时候用了一个差分数组,因为我们需要记录第i个茶师它喝了多少个。然后经过考虑3是最可行的,然后接着考虑如何计算贡献。记录,最后计算一下答案即可。原创 2024-03-03 15:54:56 · 674 阅读 · 0 评论 -
14 CodeTON Round 5 (Div. 1 + Div. 2, Rated, Prizes!)C. Tenzing and Balls(dp+前缀最大值优化)
dp还是挺明显的,思路可以参考最长上升子序列。中最大的,这个可以维护一下前缀最大值。考虑优化,第一层循环一定是省不了的。,f[j-1]-j是满足所有。当前数有两种删或不删。考虑优化掉第二层循环。原创 2024-02-29 09:27:44 · 1190 阅读 · 0 评论 -
13 Codeforces Round 886 (Div. 4)G. The Morning Star(简单容斥)
【代码】13 Codeforces Round 886 (Div. 4)G. The Morning Star(简单容斥)原创 2024-02-29 08:47:41 · 1079 阅读 · 0 评论 -
11 .Codeforces Round 891 (Div. 3)E. Power of Points(推公式+前缀和优化)
【代码】11 .Codeforces Round 891 (Div. 3)E. Power of Points(推公式+前缀和优化)原创 2024-02-28 20:14:25 · 330 阅读 · 0 评论 -
Codeforces(1500题目汇总)
开始板刷1500了,主要是最近卡1300-1400上不去,发现cf很多思维题要不是想不到,要不就是签的慢,被读题卡了心态就巨难受,一下就不想写了,而且现在学知识点容易陷入递归,学到一个知识点发现需要用其他知识点,然后又去学其他知识点,然后学完还需要对这些一堆知识点做题练习不然只会板子根本没有什么对算法深刻的理解。感觉不如这样去板刷,遇到不会的只学这个不去学太多,在题目中理解知识点应该比单纯泛泛去学可能效果会更好。也记录一下,自己1500刷多少,才能有提升。原创 2024-02-21 12:54:28 · 611 阅读 · 0 评论 -
7 E. Block Sequence
非常不错的一道dp题目。给自己的启发是dp的顺序不止能从前往后,也可以逆序,只要初始化好状态。原创 2024-02-20 23:45:17 · 840 阅读 · 0 评论 -
10 E. Data Structures Fan(异或性质、前缀和思想)
所有逆运算的都可以通过前缀和思想来进行处理加减乘除异或、异或。原创 2024-02-20 23:42:00 · 807 阅读 · 0 评论 -
5. D. In Love(贪心)
区间不相交的充要条件multiset的erase用法不小心就用错了,erase可以传入迭代器的位置,也可以传入要删除的值,如果在set里面这两个都可以,在multiset里面一个值可能出现多次,如果传入值,就会把这所有数都删除,如果只想删除一个,可以先用find函数得到一个迭代器的位置再删除。原创 2024-02-20 22:30:15 · 1161 阅读 · 0 评论 -
3. B. Milena and Admirer(贪心、小结论、思维)
这道题目主要是要想清楚对于一个数如何拆分才能对后面的影响最小。原创 2024-02-20 22:28:25 · 932 阅读 · 0 评论 -
2 F. Greetings(离散化+树状数组)
离散化的板子记得不是很熟,这种东西应该很熟并且默写的很快的树状数组用的还是比较少有些细节记得不太清,就比如树状数组的下标是从几开始的?答案是1,这就导致离散化的时候也要从1开始。看了一些题解,发现了这类问题被称为二维偏序问题aiajbibjaiajbibj。原创 2024-02-20 22:27:13 · 1077 阅读 · 0 评论 -
1. A. Did We Get Everything Covered?(构造、思维)
有判定正确性的思路,但是不会构造wa了几发。最开始是构造的思路是错的后面有一个小细节处理的不好,当要修改stringstringstring时,就不能用stringstringstring的sizesizesize作为循环的控制条件,这样很容易寄。很好的一道构造题目。原创 2024-02-20 22:26:28 · 434 阅读 · 0 评论 -
Codeforces Round 928 (Div. 4)(A、B、C、D、E、G)
每次读进来之后在set里面查询,有的话直接删掉,没有的话插入就行。正方形可以找到第一个行出现的1然后往下找,看是不是行列都是1。用一个multiset存一下,之前的数按位取反的结果。赛时找到规律了,但是有个小细节没注意到导致没过。只需要判断正方形即可,不是正方形就是三角形。计算每个数字会出现的次数,乘起来就是答案。异或上所有位都是1的数。每次删除会对答案造成-1的贡献。就是每个二次幂取的数是当前的。每个二次幂下都是一个等差数列。原创 2024-02-20 14:27:27 · 1155 阅读 · 3 评论 -
Codeforces Round 927 (Div. 3)(A~F)
每一位的结果就是当前位的数和前面所有数的和,然后倒着处理一下进位。考虑倒着算,也就是先算最后一个留下的,然后边乘边模。:表示在第i个点不喂或喂猫,合法的能为猫的最大值。第一个遇到连续两个荆棘的地方就不能再赢金币了。同花色的两两配对,是奇数的话,再用一张王去配对。判断有没有解是通过奇数牌的张数和王的张数判断。:在i处喂猫的话能喂猫的最有边的位置。所以统计连续两个荆棘之前的所有金币。最终会变为自己的多少倍会严格大于。:在i处喂猫,所能喂猫的所有数量。考虑每一位对答案的贡献。的倍数的时候,必须再。原创 2024-02-19 21:24:26 · 530 阅读 · 0 评论 -
Codeforces Round 926 (Div. 2)(A~D)
如果是危险结点那么上一个结点就不是危险结点,如果当前结点不是危险结点,那么上一个一定是危险结点。考虑每次的下注如果在这一轮赢得话就要把之前所有输的钱全部赢回来有点类似倍投的思想】B还wa了一发,有点难受一开始推错了,写的太慢了。,下面一行除了两端的两个都能对答案贡献2。只能当前u这个结点是危险结点时,满足。当前结点可能是危险结点,也可能不是,考虑对答案能贡献2的放格有多少个。从一1开始,之前的下注总和记为。为根节点的子树中,危险结点数为。为根节点的子树中,危险结点数为。为根节点的子树中,危险结点数为。原创 2024-02-16 13:04:56 · 882 阅读 · 0 评论 -
Codeforces Round 169 (Div. 2)C. Little Girl and Maximum Sum(差分、贪心)
注意空间,空间开小了在cf上可能tletletle对着种多次区间操作,一次查询要考虑一下差分,很多时候用不到那么复杂的数据结构就能解决问题。原创 2024-02-13 21:28:57 · 741 阅读 · 0 评论 -
Codeforces Round 113 (Div. 2)E. Tetrahedron(dp、递推)
一定要开long long,容易忘直接definelonglongintdefinelonglongint爆空间开滚动数组优化。原创 2024-02-13 21:19:39 · 900 阅读 · 0 评论 -
Codeforces Round 729 (Div. 2)B. Plus and Multiply(构造、数学)
对数学推式子的能力还是太差,需要多练。原创 2024-02-13 16:47:15 · 933 阅读 · 0 评论 -
Codeforces Round 303 (Div. 2)C. Kefa and Park(DFS、实现)
这道题目主要是dfs的实现,树的遍历,以及在遍历过程中维护相关信息。同时需要考虑一些细节,特殊情况比如树是一条链。原创 2024-02-12 21:41:52 · 1084 阅读 · 0 评论 -
Codeforces Round 924 (Div. 2)B. Equalize(思维+双指针)
然后维护一个极差小于n-1的区间,,区间长度就是可能的答案。最开始很容易想到要去重,因为重复的元素对于答案是没有贡献的。,然后让你给这个数组加上一个排列,求出现最多的次数。可以用双指针去实现。原创 2024-02-12 20:54:48 · 615 阅读 · 0 评论 -
Educational Codeforces Round 135 (Rated for Div. 2)C. Digital Logarithm(思维)
然后我们考虑如何求最少的操作次数,很自然的去考虑贪心,对于相同的数我们不去操作,只取操作不同的数,这些不同的数一定需要进行一次操作,然后操作完一次之后所有的数都被限制到。对于任何数,经过两次操作我们一定可以让其变为。之内的数还需要操作几次即可。求最少多少次操作可以使。两个数组变得完全相同。之内,我们只需要统计。原创 2024-02-11 15:56:42 · 1448 阅读 · 0 评论 -
set中的erase使用的一个错误
如果在遍历set的时候去erase很容易出事。两种比较正确的写法是。原创 2024-02-11 01:34:34 · 392 阅读 · 0 评论 -
Educational Codeforces Round 145 (Rated for Div. 2)C. Sum on Subarrays(构造)
当p+1,我们会增加p+1个正数组,这是不行的,我们考虑的p的最大满足。弄清楚上面的事情,代码就很简单了,我们只需要而分出最后一个满足条件的p然后按照上面的构造方法放数即可。我们先考考虑一下前一段是p个1,后面全是-1000的情况这样我们得到的正数组有。,让构造长度为n的数组满足,子数组为整数的个数为k个,负数的为。这样我们很容易考虑用很小的一个负数和一个很小的正数去构造。我们可以选择前面p个1中的一个将其变为1000,处的-1000遍为500,这样我们就可以添加。的p,也就是说缺少的正数组个数是在。原创 2024-02-09 12:12:55 · 1062 阅读 · 0 评论 -
Codeforces Round 260 (Div. 1)A. Boredom(dp)
最开始写了一发贪心wa了,然后这种选和不选的组合优化问题,一般是考虑动态规划。需要将每一个数用一个桶统计次数。表示第i个数不选的最大值。表示第i个数选的最大值。两者中取一个最大值即可。原创 2024-02-08 18:15:14 · 392 阅读 · 0 评论 -
Codeforces Round 345 (Div. 1)A. Watchmen(容斥原理)
我们可以计算xi,以及小于i之前的这些,这样可以保证只计算一次。这两个条件满足其一。这和容斥原理一样,至少选择一个的条件。当欧几里得距离和曼哈顿距离相等时,然后容斥一下计算答案。原创 2024-02-08 00:54:17 · 390 阅读 · 0 评论 -
Codeforces Round 920 (Div. 3)(A~F)
考虑贪心,到达当前如果a操作的代价大选择b操作,b操作的代价大选择a操作。然后考虑列一定是一方经过turn伦将对方挤到边界处获胜。然后比较两个端点的对答案的贡献,选择贡献大的。什么情况下alice可能会赢,一定是。先将两个数组排序,a升序,b降序。先考虑行,最终两者一定会走到一行。统计01和10的数量取最大值。为偶数时,bob可能赢。原创 2024-02-06 22:12:23 · 847 阅读 · 0 评论 -
Hello 2024C. Grouping Increases(贪心、分类讨论)
这种子序列的题目很多都是这样的,因为不需要连续很多时候我们只记录最后一个元素是多少。我们只需要记录每个数结尾的数是多少(有点最长上升子序列的味道)为较小子序列结尾的数,下面分类讨论。为较大子序列结尾当前的数,原创 2024-02-04 15:51:46 · 787 阅读 · 0 评论 -
CodeCraft-22 and Codeforces Round 795 (Div. 2)C. Sum of Substrings(分类讨论、贪心)
贪心的考虑,如果能进行第二个操作我们优先进行第2个操作,因为我们希望答案最小,不能进行第2个操作的情况下我们进行第1种操作。首先观察到处在中间位置的1对答案的贡献是11,具体在中间哪个位置是没有关系的。感觉分类讨论的能有点弱。遇到复杂一点的分类讨论的题目,代码就写的巨长。所有我们考虑将最左端第一次出现的1放到1位置。将最右端第一次出现的1放到n的位置。只有两端的两个位置是比较特殊的。原创 2024-02-04 12:21:01 · 935 阅读 · 0 评论 -
codeforce 827div4
思路:观察到数据范围n是2e5暴力做n^2会超时,再观察数据a[i]最大为1000,所以这2e5个数中必然有很多重复的,对于重复的我们只需要保存下表最大的a[i]即可这样我们便可以将数据范围缩小到1000,直接打暴力n ^2也不会超时。我们讨论串2进行k次操作后最大的字符,如果最大的字符>a那么只需把串1的a放在第一位即可,如果串2的最大字符就是a,只有使串1的最大字符也是a并且串1的长度小于串2的长度,所以每次操作后需要记录两个串的长度以及当前的最大字符即可。分析:求数组中两个互质的数的最大下标和;原创 2022-10-15 11:03:53 · 270 阅读 · 4 评论 -
Codeforces Round 734 (Div. 3)B2. Wonderful Coloring - 2(贪心构造实现)
思路:分类讨论:当一个数字出现的次数大于等于k,那么最多有k个能被染色,当一个数字出现的次数小于k,南那么这些数字都可能被染色还有一个条件就是需要满足每个颜色的数字个数一样多,这里记出现次数小于k的所有数字的出现次数总和为sum,将所有这些数字排序后,前sum-sum%k个数字是都可以被染色的,按照1~k的顺寻依次染色即可。主要是有点不太好实现。对于这种我们需要统计每个数字有多少个,同时还需要保留每个数字的下标信息的我们可以开多个vector去维护对于不需要的直接开一个桶就行。原创 2024-02-02 23:14:36 · 361 阅读 · 0 评论 -
Codeforces Round 799 (Div. 4)G. 2^Sort
我们考虑大区间满足小区间一定满足,用两个指针维护一下当前满足不等式的区间,然后长度达到就计算答案。思路很简单,主要是这类双指针的题目里面的一些细节需要注意。暴力枚举每一个端点然后去check 显然是复杂度为。原创 2024-02-02 21:20:50 · 385 阅读 · 0 评论 -
Codeforces Round 770 (Div. 2)(数学异或奇偶性)
这样我们就把判断运算后是不是和y相同,转换为判断运算后是不是和奇偶性相同。拿到题目看数据范围之后就知道暴力显然是来不及的。加法:同奇偶则运算结果是偶,不同则运算结果为奇。然后考虑两种操作对于一个数的奇偶性的影响。异或:惊奇的发现异或也是这样的。原创 2024-02-01 19:54:13 · 318 阅读 · 0 评论 -
贡献法(题目)
最近做了一些题目,发现有些题目是正着想复杂度会超时,从对答案的贡献的角度考虑会清晰很多。这道题目正常取枚举区间计算区间内有多少相同点对显然是来不及的,光是枚举区间就会花费。对于这样的情况我们是比较好计算的,我们可以用一个map存一下之前的所有i的和。我们可以考虑每个点对对于答案的贡献,也就是说每个点对所在的不同区间的个数。可以直接枚举点对吗?这样显然也是来不及的,考虑如何优化,可以取枚举。的话我们能计算除所有他后面出现过的。原创 2024-01-31 23:32:40 · 934 阅读 · 0 评论 -
Codeforces Round 922 (Div. 2)(A~D)补题
A题考虑贪心,要使使用的砖头越多,每块转的k应尽可能小,最小取2,最后可能多出来,多出来的就是最后一块k=3,我们一行内用到的砖头就是。接下来需要考虑如何check,由于我们删数的位置不确定,同时我们需要求的是在满足一定条件下的最优化问题,这时我们可以考虑一下dp。这道题就是需要考虑每一位对答案的贡献,这种贡献法也是很常用的思考方式。越大放在前面产生的逆序对可能就越多,所以我们考虑将大的往后放。的算法,涉及到异或这些很可能就是要考虑每一位的影响。首先需要二分答案,在b站的一个up看的讲解。原创 2024-01-31 17:20:44 · 1702 阅读 · 0 评论 -
Educational Codeforces Round 65 (Rated for Div. 2)C. News Distribution(模拟,计算的时候去重)
这道题目明显和出现4次的数和出现2次的数的个数有关系,只需要在每次更新之后维护这两个信息即可,我们在算出现2次的数的个数时其实会把出现4次的数的个数会把出现2次的数的个数+2,在判断时需要考虑这一点。原创 2024-01-28 22:48:59 · 355 阅读 · 0 评论 -
Educational Codeforces Round 65 (Rated for Div. 2)C. News Distribution(模拟,计算的时候去重)
这道题目明显和出现4次的数和出现2次的数的个数有关系,只需要在每次更新之后维护这两个信息即可,我们在算出现2次的数的个数时其实会把出现4次的数的个数会把出现2次的数的个数+2,在判断时需要考虑这一点。原创 2024-01-27 11:09:00 · 370 阅读 · 0 评论