CodeForces Round 767 (contest 1628)
A Meximum Array
考虑二分。二分的时候计算区间 $ \text{mex} $,参考 P4137 Rmq Problem / mex,主席树即可。时间复杂度 $ \Theta(n \log^2 n) $,无需卡常。
B Peculiar Movie Preferences
首先,对于一个合法的回文串,容易证明首尾两个字符串一定为另一个回文串。于是就找到两个成为回文串的,用 map
存一下即可。(注意特判一个字符串就为会问串的)
证明大致:显然两个字符串长度只差不会超过 $ 1 $ (差为 $ 2 $ 就有一个长度为 $ 1 $,已经为一个字符串了),如果长度差为 $ 0 $,回文显然,长度为 $ 1 $,也是显然。
C Grid Xor
按图中黄色线的红色格依次求异或和就能依次求出黑色格子的异或和。求白色和红色格子的异或和,就将黄线旋转 $ 90 ^ {\circ} $ 即可。这题好唐诗
D Game on Sum
D1 Easy Version
设 $ dp_{i, j} $ 为进行 $ i $ 轮,Bob 加了 $ j $ 次爱丽丝得到的最大分数。那么显然有初始化 $ \begin{cases} dp_{i, 0}=0 \ dp_{i, i} = i \times k \end{cases} $ 。
然后设当前选取数字 $ x $,则对于 Bob 来说会让 $ dp_{i, j} \Leftarrow \min(dp_{i-1,j-1}+x,dp_{i-1,j}-x) $。对于 Alice 来说,就要找到 $ x $ 使得 $ \min(dp_{i-1,j-1}+x,dp_{i-1,j}-x) $ 最大。最小值最大,二分啊,那么显然答案为 $ dp_{i-1,j-1}+dp_{i-1,j} \over 2 $ (一个 $ +x $,一个 $ -x $,显然让这两个值相等最优。
时间复杂度 $ \Theta(nm) $ ~ $ \Theta(n^2) $ ,随便过。
D2 Hard Version
刚才的转移柿子: $ dp_{i-1,j-1}+dp_{i-1,j} \over 2 $,不看 $ \div 2 $,很想组合数的转移,但初始化不一样,没关系,还可以抽象成一个网格图,每次珂以往左走,且必须往上走一格。很显然组合数搞一下。那么考虑所有初始化 $ dp_{i, i} $ 对 $ dp_{n, m} $ 的贡献(\(C_{n-i-1}^{m-i}\)),最后把 $ \div 2 $ 除回去,即 $ \div 2^{n-i} $。
时间复杂度 $ \Theta(n) $ ~ $ \Theta(n \log n) $。
E Groceries in Meteor Town
起手克鲁斯卡尔重构,此时就是一个点与所有白点的 $ \text{lca} $,找到最小和最大的 $ dfn $ 即可。
CodeForces Round 727 (contest 1539)
A Contest Start
个人认为 A>C>B 。
首先考虑一下第一个人的不满意度。容易发现即为 $ \lfloor {t \over x} \rfloor $ 。然后注意到接下来也有一堆人都是 $ \lfloor {t \over x} \rfloor $ 。一直到 $ n - \lfloor {t \over x} \rfloor $ 。之后因为人没了,所以即为 $ \lfloor {t \over x} \rfloor - 1, \lfloor {t \over x} \rfloor - 2, \lfloor {t \over x} \rfloor - 3, \cdots, 1, 0 $ 。所以答案即为 $ \lfloor {t \over x} \rfloor \times (n - \lfloor {t \over x} \rfloor) + {\lfloor {t \over x} \rfloor \times (\lfloor {t \over x} \rfloor - 1) \over 2} $ 。
然后考虑到有可能 $ n < \lfloor {t \over x} \rfloor $ 。特判即可,答案显然为 $ {n(n-1) \over 2} $ 。
B Love Song
...
C Stable Groups
首先将 $ a $ 排序,考虑对于 $ a_i, a_{i + 1} $ 之间至少要多少点才能使得两点连接,容易发现,这个答案为 $ \max(0, \lceil {a_{i + 1} - a_i \over x} \rceil - 1) $ 。
将所有点抽象成一张图,两个点相邻的点直接连一条边权 $ \max(0, \lceil { a_{i + 1} - a_i \over x } \rceil - 1) $ 的边。对这张图跑 Kruskal ,最后的连通块个数即为答案。因为为了相邻两点之间的联通所增加的点并不会影响其他联通关系。
D PriceFixed
居然一直在想反悔贪心,跟个**一样。
发现若用 $ x $ 个 $ 2 $ 卢布购买商品珂以使得方案合法,那么 $ > x $ 的都可以。因此满足单调性(单调上升)。
于是珂以二分,二分出最少用多少个 $ 2 $ 卢布购买商品。对于 $ mid $ ,显然珂以将他们购买 $ b $ 最大的。正确性显然。那么再按 $ b $ 从小到大枚举,即可检验正确性。最后答案就为 $ (\sum \limits_{i=1}^n a_i) + l $ 。
E Game with Cards
将答案分为 $ 0, 1 $ 串,设 $ dp_{i, 0/1} $ 为第 $ i $ 个位置为 $ 0/1 $ 串的最后一个,此时前缀是否合法。以 $ 0 $ 为例。对于 $ dp_{i, 0} $ 需要找到一个 $ < i $ 的 $ j $ 使得 $ dp_{j,1}=1 $ ,并满足 $ [j + 1, i] $ 的都珂以替换左手,且 $ j $ 替换的右手满足 $ [j + 1, i] $ 的条件。形式化一点的条件:
\[\begin{cases} dp_{j,1}=1\ (0 \le j < i) \\ a_{l,u} \le k_u \le b_{l,u}\ (j + 1 \le u \le i) \\ a_{r,u} \le k_j \le b_{r,u}\ (j + 1 \le u \le i) \end{cases} \]直接做显然是 $ \Theta(n^2) $ 的,考虑优化。发现 $ j $ 若满足条件并没有什么规律,主要原因在于第三个条件的 $ k_j $ ,如果能把这个不定值改成定值,就能找到一些规律,从而进行优化。珂以将 $ dp_{i,0/1} $ 改成第 $ i $ 个位置为 $ 0/1 $ 串的第一个,此时后缀是否合法。那么条件变为:
\[\begin{cases} dp_{j,1}=1\ (i < j \le n + 1) \\ a_{l,u} \le k_u \le b_{l,u}\ (i \le k < j) \\ a_{r,u} \le k_{i-1} \le b_{r,u}\ (i \le k < j) \\ \end{cases} \]成功将不定值 $ k_j $ 改为定值 $ k_{i - 1} $ 。这时发现所有满足 $ dp_{j,1}=1 $ 中,$ j $ 越小,条件越弱。于是珂以存储最小的满足 $ dp_{j,1} = 1 $ 的 $ j $ ,扫一遍即可。时间复杂度 $ \Theta(n) $ ~ $ \Theta(n \log n) $ (具体实现:对于第二个条件,珂以求出最大的满足(第二个)条件的 $ j - 1 $ 。对于第三个条件,等价于 $ (\max \limits_{u=i}^{j-1} a_{r,u}) \le k_{i-1} \le (\min \limits_{u=i}^{j-1} b_{r,u}) $ 直接求即可。
F Strange Array
令答案区间中小于 $ a_i $ 的个数为 $ s $ ,等于为 $ e $ ,大于为 $ b $ 。令中位数为 $ u $ 。
-
$ a_i < u $ ,答案为 $ \lceil {b + e - s \over 2} \rceil $ 。
-
$ a_i \ge u $ ,答案为 $ \lfloor {s + e - b \over 2} \rfloor $ 。
对于第一种情况,建立数组 $ A $ ,对于所有 $ j $ ,若 $ a_i \ge a_i $ 则 $ A_j = 1 $ ,否则 $ A_j = -1 $ 。
容易发现此时最大的 $ b + e - s $ 就是 $ A $ 中包含 $ i $ 的最大字段和。线段树维护即可。第二种情况同理。对于更新,按 $ a_i $ 升序排序,依次枚举进行更新即可。时间复杂度 $ \Theta(n \log n) $ 。
CodeForces Round 745(contest 1581)
A CQXYM Count Permutations
手完样例即可。发现对于任意 $ p_i < p_{i + 1} $ 的个数为 $ l(l \le n) $ 的排列,将所有 $ p_i $ 变成 $ 2n - p_i + 1 $,则 $ p_i < p_{i + 1} $ 的个数变为 $ 2n - l $。由此可得所有 $ l $ 个的,都对应一个 $ 2n - l $ 的,因为总共只有 $ 2n! $ 个排列,两种排列一一对应,所以就有其中一个就是 $ 2n! \over 2 $。
B Diameter of Graph
想到菊花图就好了。但有两个特殊情况:
-
$ m < n - 1\ \lor\ m > {n(n-1) \over 2} $。图不连通或图有重边。
-
$ k = 0, n = 1 $。这时是可行的。
C Portal
感觉不如 B ,特别水的trick。
令矩阵两个点为(左上角,右下角) $ (l_1, l_2), (r_1, r_2) $。枚举 $ l_1, r_1 $,就变成了一维,直接扫一遍即可。时间复杂度: $ \Theta(Tn ^ 3) $。
如果确定,则答案显然为
\[=(r_1-l_1-1)*r_2-(r_1-l_1-1)*l_2-(r_1-l_1-1)-sum_{r_1-1,r_2-1}+sum_{r_1-1,l_2}+sum_{l_1,r_2-1}-sum_{l_1,l_2} \\ +sum_{l_1,r_2-1}-sum_{l_1,l_2}-sum_{l_1-1,r_2-1}+sum_{l_1-1,l_2} \\ +sum_{r_1,r_2-1}-sum_{r_1,l_2}-sum_{r_1-1,r_2-1}+sum_{r_1-1,l_2} \\ +sum_{r_1-1,l_2}-sum_{r_1-1,l_2-1}-sum_{l_1,l_2}+sum_{l_1,l_2-1} \\ +sum_{r_1-1,r_2}-sum_{r_1-1,r_2-1}-sum_{l_1,r_2}+sum_{l_1,r_2-1} \\ = -(r_1-l_1-1) \\ -(r_1-l_1-1)*l_2+sum_{r_1-1,l_2}-sum_{l_1,l_2}-sum_{l_1,l_2}+sum_{l_1-1,l_2}-sum_{r_1,l_2}+sum_{r_1-1,l_2}+sum_{r_1-1,l_2}-sum_{r_1-1,l_2-1}-sum_{l_1,l_2}+sum_{l_1,l_2-1} \\ (r_1-l_1-1)*r_2-sum_{r_1-1,r_2-1}+sum_{l_1,r_2-1}+sum_{l_1,r_2-1}-sum_{l_1-1,r_2-1}+sum_{r_1,r_2-1}-sum[r_1-1][r_2-2]+sum_{r_1-1,r_2}-sum_{r_1-1,r_2-1}-sum_{l_1,r_2}+sum_{l_1,r_2-1} \\ \]存最小值直接搞即可。
D Mathematics Curriculum
设 $ dp_{i, j, k} $ 为长度为 $ i $ 的排列有 $ j $ 个 $ k $ 的好数的方案数。
珂以枚举最大值,即 $ i $ 的位置,令它为 $ p $。则将排列分为长度为 $ p - 1 $ 和 $ i - p $ 的序列。容易发现两边不会相互影响,所以只需要求出离散后的答案即可,左右两边离散成排列的答案。
注意到这个排列 $ k $ 的好数个数等于两边的 $ k - 1 $ 的好数的个数加上 $ [k = 1] $ (即最大值是否为 $ k $ 的好数)。于是珂以枚举左边 $ k - 1 $ 的好数个数 $ l $,则 $ j = (l) + (k - l - [k = 1]) $。那么得到柿子 $ dp_{i, j, k} = \sum \limits_{p=1}^i \sum \limits_{l=0}^{p-1} dp_{p-1,l,k-1} \times dp_{n-p,j-l-[k=1],k-1} $。
但是因为这里把两边当成了两个排列,即离散之后的数组,实际需要分配,即将除最大之外的 $ i - 1 $ 个数分配到左右两边,方案为 $ C_{i - 1}^{p - 1}\ or\ C_{i=1}^{i-p} $。最终柿子:
\[dp_{i, j, k} = \sum_{p=1}^{i} \sum_{l=0}^{p-1} C_{i - 1}^{p - 1} \times dp_{p - 1, l, k - 1} \times dp_{i - p, j - l - [k = 1], k = 1} \]然后是一些特判:
if (i < j || (i < k && j > 0)) return 0;
if (k < 1 && j > 0) return 0;
if (k == 1 && j > 1) return 0;
if (i == 0) return (j == 0);
E Train Maintenance
每辆列车显然有 \(x_i+y_i\) 的周期,显然想到根号分治。
先考虑加入列车:
-
\(x_i+y_i>\sqrt{m}\),这时珂以枚举所有列车维护的区间,差分即可。时间复杂度: \(\Theta(m \sqrt m)\)。
-
\(x_i+y_i\le\sqrt{m}\),这时记录 \(sum_{i,j}\),表示周期为 \(i\) 时,时间对 \(i\) 取模为 \(j\) 时正在维护的列车个数。对 \(x_i+k\) 到 \(x_i+y_i+k-1\) 加即可(需要判一下是一段区间还是两段,\(k\) 为时间)。
对于删去列车,\(x_i+y_i\le\sqrt{m}\) 只需要改符号就行,但是发现 \(x_i+y_i>\sqrt{m}\) 时,有可能出现,区间已经经过或正在经过。
大概有两种解决方案,一种是无脑的将差分换成树状数组,复杂度达到 \(\Theta(m\sqrt{m}\log m)\),可以过,但是有点卡,Code 。
另一种就是判一下。
-
如果是已经经过。那么直接跳过即可。
-
如果是正在经过。令加的区间为 \([l,r]\),当前时间为 \(k\),因为已经加过,所以撤销,即
s[l]=s[l]-1,s[r+1]=s[r+1]+1
。然后实际上 \([l,i]\) 的答案已经加上了,所以s[i]=s[i]-(i-l+1)
。 -
如果还没经过。直接减即可。
CodeForces Round 818 (contest 1717)
A Madoka and Strange Thoughts
答案为 $ n + \lfloor {n \over 2} \rfloor \times 2 + \lfloor {n \over 3} \rfloor \times 2 $ 。
B Madoka and Underground Competitions
样例提示性很强,而且非常容易证明。剩下的靠码力,像我这种傻逼码力不行的就用了 \(15\ \text{min}\) 。
C Madoka and Formal Statement
盯着题半天,结论一眼,然后觉得C不可能这么简单,结果一直再纠结,最后随便写了下就过了。
首先若 $ a_i > b_i $ 不行。(这是显然的)
然后若 $ a_i \ne b_i\ \land\ b_i > b_{i + 1} + 1 $ 不行。(这也是显然的)
然后没了………………
D Madoka and The Corruption Scheme
这棵树的左右关系显然不重要,于是让一个节点的权值等于左子节点。那么主办方若能让一个人获胜,那么这个人到根节点的简单路径上从右子节点到父节点的个数 $ \le k $ 。
回忆一下线段树标号,一个节点的左子节点标号为这个节点标号的末尾加一个 $ 0 $ ,右子节点加 $ 1 $ 。
那么让这棵树为一颗线段树,其中一个叶子节点标号为 $ x $ ,若去掉第一位后二进制位 $ 1 $ 的个数 $ \le k $ ,则可以。于是珂以枚举 $ 1 $ 的个数 $ o $ ,显然方案为 $ C_{n}^{o} $ 。所以最终答案即为:
\[\sum_{i=0}^{\min(n,k)} C_{n}^{i} \]E Madoka and The Best University
先枚举 $ \gcd(a, b) $ ,然后枚举 $ a + b $,调和级数复杂度 $ \Theta(n \log n) $
枚举完后可得 $ c $ 及 $ \text{lcm}(c, \gcd(a,b)) $ 。然后考虑如何计算方案数。令 $ a=n\gcd(a,b),b=m\gcd(a,b) $ 。则 $ n, m $ 一定互质,所以 $ n, m, n+m $ 也互质。又因为 $ n + m = {a + b \over \gcd(a,b)} $ ,所以 $ n, m $ 的取值方案数就是小于 $ n + m $ 且与 $ n + m $ 互质的数的个数,即为欧拉函数的定义,做完了。
证明一下 $ n, m $ 互质,$ n + m $ 也互质。也就是相当于 $ \gcd(n, m) = \gcd(n + m, n) $ 。因为若 $ u | v, u | w $ 则 $ u | (v + w) $ 。那么让 $ u=\gcd(n,m),v=n,w=m $ 带入即可证明。
Codeforces Round 902(contest 1877)
A Goals of Victory
手完样例即可。当然设 $ x_i, y_i $ 为得分和被得分(名字好抽)。则 $ \sum \limits_{i=1}^{n} x_i-y_i=0=\sum \limits_{i=1}^{n} a_i $,所以 $ -a_n = \sum \limits_{i=1}^{n-1} a_i $。也是可以的。
这种唐诗题我做了7分钟?
B Helmets in Night Light
比 A 简单,贪心即可。
这样我还用了7分钟?
C Joyboard
定义 $ \text{calc}(n, m, k) $ 为方案数。则:
\[\begin{cases} \text{calc}(n, n - 1, k) + \text{calc}(n, n - 1, k - 1) \times (\lfloor {m \over n} \rfloor - 1) + \text{calc}(n, m \mod n, k - 1) \ \ \ m \ge n \\ m\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k = 2 \\ 1\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ k = 0 \\ 0\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ else \\ \end{cases} \]花了20分种,很合理。
D Effects of Anti Pimples
定义 $ ma_i = \max \limits_{j=i\cdot k\ \land\ j \le n\ {k|k \in \mathbb{N}}} a_j $
那么显然,答案为 $ \sum \limits_{S \in \mathbb{U}} \max \limits_{j \in S} ma_j $。按 $ ma_i $ 排序,枚举 $ ma_j $,设 $ x = \sum \limits_{i=1}^{n} [ma_i = j], y=\sum \limits_{i=1}^n [ma_i < j] $。则贡献为 $ (2x-1)(2y)(ma_j) $。
花了20分钟,很合理。
E Autosynthesis
大眼观测可得以下两个显然的性质。
-
若一个点不选,则一定会选他的权值。(题意)
-
若一个点选,则一定会有一个点,他的权值为这个点的下标。(上一条反过来)
让 $ i $ 连向 $ a_i $,每个点如果不被圈起来。为白色,否则为黑色。则两条性质变为:
-
每一个白色的点所连向的边为黑色。
-
每一个黑色的点有白色的点连向它。
然后再注意到每个点只有一条出边,所以图是基环树(树连向环)。于是有以下做法:
首先,显然先考虑树,显然拓扑,过程中算颜色。对于叶子节点显然全部为白色。因为没有点可以连向它。对于白色的点指向的点有上面的性质可得为黑色,如果这个点的子节点没有让这个点有颜色,则这个点一定为白色(子节点全为黑色,无法让它为黑色)。
对于环,先找到任意一个有颜色的点,如果没有,就任意找一个点变为白色。然后在环上走,这个点的颜色就为上一个点的另一种颜色。最终再遍历一遍环,如果白色撞到一起了,就不合法。
注意特判长度为 $ 1 $ 的环。
CodeForces Round 949 (contest 1981)
A Turtle and Piggy Are Playing a Game
赛场没看到 $ 2l < r $ ,看到后反应过来是 $ 2 $ 的整数次幂。
B Turtle and an Infinite Sequence
赛场一直在找规律,结果可以直接做。。。。。。
显然 $ a_n $ 在 $ m $ 时刻即为 $ a_{\min(n - m, 0)} | a_{\min(n - m + 1, 1)} | \cdots | a_{n + m - 1} | a_{n + m} $ 。随便搞。
C Turtle and an Incomplete Sequence
容易将问题抽象成求 $ a' = { st, -1, -1, \cdots, -1, ed } $ 的 $ b $ 。然后容易发现把一个点往右一个点抽象成一次操作,那么一次操作就是将一个点的二进制位加一位(最后一位随便定)或减一位。
那么先将 $ st, ed $ 按二进制最高位对齐,求出 $ "lcp" $ ,最小的操作数即为非 $ "lcp" $ 的个数。然后注意到所有可能的操作次数的奇偶性与最小操作次数的奇偶性相同。然后就没了。
D Turtle and Multiplication
考虑 $ a $ 全为质数,则将 $ a_{i - 1} $ 与 $ a_i $ 相连。那么题意转化为一个无向完全图(含自环)中,可以删除一些变,找到一个长度为 $ n - 1 $ 的不重复经过边的路径。
若点数为奇数,则每个点的度数为偶数,存在欧拉路径,则边数可以有 $ m(m + 1) \over 2 $ 。
若点数为偶数,则每个点的度数为奇数,若存在欧拉路径,则最多两个点的度数为奇数,其他点度数为偶数。那么可以将除 $ 1, m $ 的所有边删掉一条,即 $ (2, 3)\ (4, 5)\ \cdots\ (m-2,m-1) $ 。首尾连一条边求出答案后删去即可。点数: $ {m(m + 1) \over 2} - {m \over 2} + 1 = {m^2 \over 2} + 1 $ 。
E Turtle and Intersected Segments
将每个点连向自己所能连的所有边中小于和大于最接近自己的点。(排序后的前驱后继)
然后考虑如何计算,可以类似扫描线的东西,每个点 $ l $ 时刻插入,$ r + 1 $ 时刻删除。用个合理的容器存入这些点,每个点查询前驱后继连边即可。最后用喜欢的方式跑最小生成树即可。
CodeForces Round 953 (contest 1978)
A Alice and Books
好久没有碰到这么良心的A了。
B New Bakery
好久没有碰到这么良心的B了。
C Manhattan Permutations
好久没有碰到这么凉心的C了,很显然的一个构造。
先考虑最大合法的 $ k $ ,奇偶分讨一下,对于偶数,建立两个集合为小于等于 $ {n\over 2} $ 和大于的,两个集合相互对应。奇数类似,考虑将中间一个点孤立即可(这是显然的)。然后由于是排列,那么一定珂以通过多次或一次交换变换为其他排列,然后注意到交换一次后 $ |a_i - i|, |a_j - j| $ 要么奇偶性不变,要么全变。无论哪种,都不会改变和的奇偶。所以所有排列的曼哈顿值全为偶数。(当然珂以直接打表找规律,也是显然的
然后你可以考虑在 $ k \ge 2(n-1) $ 的时候,将 $ p_1=n,p_n=1 $ ,然后对 $ [2, n-1] $ 进行构造 $ k - 2(n-1) $ 贡献。注意到 $ [2,n-1] $ 为连续一段区间,于是珂以递归 $ n - 2, k - 2(n-1) $ 进行构造。容易证明,只要 $ k $ 合法,这样就珂以构造出一种答案(因为对于 $ k $ 是成立的条件,并不存在下界,也就是说,若 $ n, k $ 有答案,则 $ n-2, k-2(n-1) $ 也一定有答案。因为这样对 $ p_1, p_n $ 是使答案最大的其中一中。或者从代数的角度,对奇偶分讨,然后珂以证明也是合法的,不在展开)。那么就考虑 $ k < 2(n-1) $ 的情况。
打表可得排列可为: $ 1\ \ 2\ \ \cdots\ \ n-{k\over2}-1\ \ n-{k\over2}+1\ \ n-{k\over2}+2\ \ \cdots\ \ n\ \ n-{k\over2} $ 。大致原因如下:前面 $ n-{k\over2}-1 $ 成一个曼哈顿值为 $ 0 $ 的排列,于是考虑将后面弄成长度为 $ l(l={k\over2}+1) $ 的新排列:$ 2\ \ 3\ \ \cdots\ \ l\ \ 1 $ 。显然答案为 $ 2(l-1)=k $ 。
总结一下,构造函数 $ \text{build}(n, l, r, k) $ ,表示构造长度为 $ n $ 的排列,放入答案数组的 $ [l, r] $中,曼哈顿值为 $ k $。
-
$ k \ge 2(n-1) $,让 $ ans_l \Leftarrow n, ans_r \Leftarrow 1 $。并递归 $ \text{build}(n-2,l+1,r-1,k-2(n-1)) $ 。同时将 $ [l+1,r-1] $ 整体加 $ 1 $,差分即可。
-
$ k < 2(n-1) $,按照如上方式构造即可。
D Elections
对于一个人来说,如果将前面的弹掉,那么显然是全部弹掉最优,然后再把后面大于他的弹掉。(只需弹掉最大的,这样它显然就珂以成为最大的了)
还有一种不弹掉,把后面大于他的弹掉即可。(注意后面大于它的加上 $ c $ 再加上 $ a_1 $ 需要小于当前投票数)
E Computing Machine
注意到只会执行一波操作 $ 1 $ 然后执行一波操作 $ 2 $。(这是显然的。
那么维护执行完操作 $ 1 $ 完之后的 $ t $,再用新的 $ t $ 维护新的 $ s $。每次查询的时候特判一下即可。
比赛一直怀疑做法,结果没调出来。。。话说这样真的能算 $ \text{E} $ 嘛。
F Large Graph
注意到k>=2,所以每一个对角线都是一个连通块。然后相邻的连通块距离为1,且每个连通块权值相同。于是珂以放入新数组。
对每个质因子暴力枚举相邻边即可。时间复杂度 $ \Theta(nv) $ (\(v\) 为最大的质因数个数,这里为 $ 7 $)
标签:lfloor,le,sum,CodeForces,VP,Record,即可,over,dp From: https://www.cnblogs.com/shengxuanyi/p/18414769