随笔分类 - Codeforces
CF1558F Strange Sort 题解
摘要:洛谷题解总结到位“这种排序题通常情况下要转换成 \text{01} 序列处理”。设 b_i=[a_i\ge x],枚举所有的 x,每次计算让所有 0 在最左边的最少轮数,取 \max 就是答案。设 f_i 为前 i 个 0 归位的最少论
Codeforces Round #635 (Div. 1)
摘要:Codeforces Round #635 (Div. 1) A 略 B 先排序,枚举 x,贪心地选 y,z C S 中连续的一段在 A 中也是连续的。想象把 T 补齐(后面是什么无所谓),令 f_{l,r} 表示 S[1,r-l+1] 拼成
Codeforces Round #633 (Div. 1)
摘要:Codeforces Round #633 (Div. 1) A 略 B 答案最大为 3。如果用 2 种,那一定可以只用 1 种。然后看看什么情况只用 1 种(略) C 找规律(略) D 设选出的集合为 S,则 \forall u,以 u 为根
Codeforces Round #631 (Div. 1)
摘要:Codeforces Round #631 (Div. 1) A 略 B 由题意得,a_i 二进制下最高位的 1 一定大于 a_{i-1} 的,并且只需要满足这一个条件。那么只需要计算出 p_i 表示最高二进制位为 i 时有多少种数,前面都是 2^k
Codeforces Global Round 7
摘要:Codeforces Global Round 7 E 答案显然单调不增,那么初始答案为 res=n,不断判定并减小答案直到可行。判断方法:把有删除操作的地方记上 -1,把 p_i\ge n 的地方记上 +1,若最大的后缀和 >0,则 res 可行。这
Codeforces Round #621 (Div. 1 + Div. 2)
摘要:Codeforces Round #621 (Div. 1 + Div. 2) A 略 B 略 C 只需计算长度为 1,2 的(略) D 略 E 大概观察一下,划分可行的条件为:吃同种草的最多有两只,一只左一只右;并且左边走得最远的和右边走得最远的不会碰到。 枚举左边的羊向右到达的最远点,然
Codeforces Round #616 (Div. 1)
摘要:Codeforces Round #616 (Div. 1) A 略 B 分成多段肯定不如分成两段 [l,t],[t+1,r],只需考虑 [l,x] 是否存在。满足以下条件之一有解: 1、len=1 2、s_l\ne s_r。构造:只需 \(swap(s_l,s_r)
Codeforces Round #614 (Div. 1)
摘要:Codeforces Round #614 (Div. 1) AB 略 C 先观察规律确定dp方程式,然后记搜优化(略) D 建出整棵树空间不太够( 3\times10^7 个节点 ),只能考虑类似虚树的思想。其实只需要知道每个子树里有多少节点,然后不断移动来确定重心(略) E 如果能确定两
Codeforces Round #612 (Div. 1)
摘要:Codeforces Round #612 (Div. 1) A 把已经填好的位置取出来构成子序列。如果相邻两个数奇偶性相同,要么这段中填满同样奇偶性的数,贡献为 0,要么贡献为 2。如果相邻两个不同,怎么填最优贡献都是 1。那么贪心的考虑相同的情况,填补尽量多的段。注意头上
CF1519F Chests and Keys
摘要:CF1519F Chests and Keys CF1519F Chests and Keys 前半部分和另一篇题解基本相同: 首先用式子来表示题意,即花费最小代价上锁以下条件成立:设 L_x 为宝箱 x 上锁的集合,则对于任意的打开的宝箱集合 S,都要满足:\(\sum\l
Codeforces Round #715 (Div. 1)
摘要:Codeforces Round #715 (Div. 1) Codeforces Round #715 (Div. 1) A 三个串中必定存在两个串 A,B,满足$max(min(number\ of\ 0\ in\ A,number\ of\ 0\ in\ B),min(number\
Codeforces Round #609 (Div. 1)
摘要:Codeforces Round #609 (Div. 1) A 先保留前 k 位写出当前的答案。如果合法直接输,如果不合法把前 k 位数字 +1 重新写 B 将网格图黑白染色,答案是 cnt=min(num(black),num(white))。可通过二分图匹配或手
Codeforces Round #607 (Div. 1)
摘要:Codeforces Round #607 (Div. 1) A 每个位置一旦被赋值就不会再更改。记录当前哪些位置已经赋值,然后暴力更改没赋值的位置。但 m 之后的用不到不用管 B 答案只有 6 种 res=0 初始就全都是 A res=1 矩阵的四条边界中有
Codeforces Round #606 (Div. 1)
摘要:Codeforces Round #606 (Div. 1) Codeforces Round #606 (Div. 1) A dp:不用任何观察。只有 one,two 两种特殊的串,dp 的时候只要记录末尾是 o,on,t,tw 还是其他东西就好了 greedy:遍历字符串
Codeforces Round #604 (Div. 1)
摘要:Codeforces Round #604 (Div. 1) A 先把原序列去重弄成二元组 (x,c_x),即解了 x 题的有 c_x 人。这样的处理方便解决“严格大于”的限制,只要每种奖牌取一些二元组即可。 然后找到人数一半的位置把后面的仍掉。接下来枚举金牌的人数,然后从后
Codeforces Round #601 (Div. 1)
摘要:Codeforces Round #601 (Div. 1) A 容易发现最小的差肯定是 1,即有一些块包含 x 个,一些块有 x+1 个。关键在于保证连通。只要按照“蛇形”拓展即可:一行一行走,第一行从左往右,第二行从右往左,第三行... #include <bits/st
Codeforces Div1 题解目录
摘要:Codeforces Round #601 (Div. 1) Codeforces Round #604 (Div. 1) Codeforces Round #606 (Div. 1) Codeforces Round #607 (Div. 1) Codeforces Round #609 (Div
Codeforces Round #618 (Div. 1)
摘要:Codeforces Round #618 (Div. 1) 旧题重补系列 A (x|y)-y 就是二进制下 x 为 1 而 y 为 0 的位的权值和 而 f(f(…f(f(a_1,a_2),a_3),…a_{n−1}),a_n) 表示二进制下只有 \
Codeforces Round #694 (Div. 1) BCDE
摘要:Codeforces Round #694 (Div. 1) B - Strange Definition 来看一些结论: 1、两个数 x,y 满足条件等价于 xy=k^2 (两数乘积是完全平方数) 证:若 xy=k^2,则有$\frac{lcm(x,y)}{gcd(x,y)
CF1157G Inverse of Rows and Columns
摘要:"题面" 当n 1时,为了满足题目的条件,最后的矩阵必须满足两个条件中至少一个:A、第一行全是0 B、最后一行全是1 按照两种情况做两遍(强制使其中一个情况满足)就可以得到答案了吧,以A为例: 若a[1][i]=1,则第i列标记为需要一次操作,然后对之后每一行判断操作后的情况 有两种情况存在答案: