
【OJ】CodeForces
文章平均质量分 87
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【CodeForces】Codeforces Global Round 9
比赛链接点击打开链接官方题解点击打开链接Problem A. Sign Flipping将奇数位的数取非正值,偶数位的数取非负值即可。单组数据时间复杂度 O(N)O(N)O(N) 。#include<bits/stdc++.h>using namespace std;const int MAXN = 3e5 + 5;typedef long long ll;template <typename T> void chkmax(T &x, T y) {x =原创 2020-07-10 16:20:33 · 1311 阅读 · 0 评论 -
【CodeForces】Ozon Tech Challenge 2020
比赛链接点击打开链接官方题解点击打开链接Problem A. Kuroni and the Gifts将 aia_iai 和 bib_ibi 排序后输出即可。时间复杂度 O(TNLogN)O(TNLogN)O(TNLogN) 。#include<bits/stdc++.h>using namespace std;const int MAXN = 3e5 + 5;...原创 2020-03-13 16:48:40 · 566 阅读 · 0 评论 -
【CodeForces】Codeforces Round 625
比赛链接点击打开链接官方题解点击打开链接Problem A. Journey Planning显然可以枚举 bib_ibi 与 iii 的差值,并选取所有合法的 bib_ibi 。时间复杂度 O(NLogN)O(NLogN)O(NLogN) 。#include<bits/stdc++.h>using namespace std;const int MAXN = 3...原创 2020-03-12 14:17:38 · 465 阅读 · 0 评论 -
【CodeForces】Codeforces Round 626
比赛链接点击打开链接官方题解点击打开链接Problem A. Unusual Competitions显然,当且仅当左右括号的个数不相等,答案为 −1-1−1 。否则,将左右括号分别看做 +1,−1+1,-1+1,−1 ,画出前缀和的折线图,不难发现翻转 xxx 轴下方的部分是最优的。时间复杂度 O(N)O(N)O(N) 。#include<bits/stdc++.h>...原创 2020-03-10 15:25:59 · 660 阅读 · 0 评论 -
【CodeForces】Codeforces Round 621
比赛链接点击打开链接官方题解点击打开链接Problem A. Cow and Haybales按照题意模拟即可。单组数据时间复杂度 O(N+D)O(N+D)O(N+D) 。#include<bits/stdc++.h>using namespace std;const int MAXN = 105;typedef long long ll;template <...原创 2020-02-18 17:23:36 · 735 阅读 · 1 评论 -
【CodeForces】Codeforces Round 618
比赛链接点击打开链接官方题解点击打开链接Problem A. Anu Has a Function讨论 f(a,b) (a,b∈{0,1})f(a,b)\ (a,b\in\{0,1\})f(a,b) (a,b∈{0,1}) 的结果,可以发现,答案的各个位是独立的。进一步发现,答案在某一位上是 111 当且仅当 a1a_1a1 是唯一一个在这一位上是 111 的数。...原创 2020-02-10 17:36:30 · 440 阅读 · 0 评论 -
【CodeForces】Codeforces Round 616
比赛链接点击打开链接官方题解点击打开链接Problem A. Mind Control不难发现玩家可以选择到的两个权值仅与之前玩家选择开头元素的次数 iii 有关。因此,枚举强制之前玩家选择开头元素的次数,最坏的情况就是对应区间里最小的权值。时间复杂度 O(N2)O(N^2)O(N2) 。#include<bits/stdc++.h>using namespace s...原创 2020-02-03 20:40:10 · 498 阅读 · 0 评论 -
【CodeForces】Codeforces Round 614
比赛链接点击打开链接官方题解点击打开链接Problem A. NEKO’s Maze Game注意到保证了 (1,1)(1,1)(1,1) 和 (2,n)(2,n)(2,n) 始终不会出现障碍,能够从 (1,1)(1,1)(1,1) 到达 (2,n)(2,n)(2,n) 当且仅当没有出现路径被隔断的情况。那么,维护隔断路径的点对的数量 AnsAnsAns ,每次修改后 O(1)O(1...原创 2020-01-20 15:28:50 · 613 阅读 · 0 评论 -
【集训队作业】IOI 2020 集训队作业 试题泛做 13
Codeforces 679E Bear and Bad Powers of 42不难发现数列中的元素不可能达到很大,我们只需要考虑 424242 的前若干个幂。考虑没有赋值操作的做法,则可用线段树维护区间中最接近 424242 的下一个幂的数与这个幂的差值,在区间加时,只需要在线段树上 DFS 找到差值变负的位置更新其与 424242 下一个幂的差值即可。由于一个数导致进行 DFS 的次数...原创 2020-01-18 20:42:45 · 937 阅读 · 0 评论 -
【集训队作业】IOI 2020 集训队作业 试题泛做 12
Codeforces 634F Orchestra若枚举矩形的上下边界,则问题显然可以 O(n)O(n)O(n) 解决。那么,考虑枚举矩形的上边界,再从上到下枚举矩形的下边界,则我们需要一边插入点,一边动态维护上面问题的答案。若直接实现,需要使用平衡树。事实上,我们可以从下到上枚举矩形的下边界,则只需要链表就可以维护了。时间复杂度 O(r2+rnk)O(r^2+rnk)O(r2+rnk) ...原创 2020-01-18 20:41:49 · 529 阅读 · 0 评论 -
【集训队作业】IOI 2020 集训队作业 试题泛做 11
Codeforces 590E Birthday首先,可以用 AC 自动机计算出字符串的包含关系。注意到包含关系构成了一个偏序集,剩余的问题本质上是要求出最长反链。由 Dilworth 定理,可以得到,最长反链的大小在数值上等于最小链划分的大小。这里,最小链划分指的是将偏序集划分为尽可能少的元素两两可比的子集,这样的子集称为链。传递闭包后,最小链划分可以转化为 DAG 上的最小路径覆盖问...原创 2020-01-18 20:39:24 · 665 阅读 · 0 评论 -
【CodeForces553E】Kyoya and Train
【题目链接】点击打开链接【思路要点】考虑一个暴力 dpdpdp ,记 dpi,jdp_{i,j}dpi,j 表示在点 iii 处,时刻 jjj 最优决策的期望花费。则有dpi,j={x+dist(i,N)j&amp;gt;T0i=N,j≤TMini⇒e∈E{costi,e+∑k=1tpi,e,k∗dpe,j+k}i≠N,j≤Tdp_{i,j}=\left\{\begin{a...原创 2018-11-19 12:30:06 · 441 阅读 · 0 评论 -
【CodeForces】Mail.Ru Cup 2018 Round 1 (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Elevator or Stairs?【思路要点】按照题意计算两种方式的用时,取较优的方案采纳。时间复杂度 O(1)O(1)O(1) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5...原创 2018-10-21 14:28:31 · 929 阅读 · 1 评论 -
【CodeForces】CodeForces Round #517 (Div. 1 + Div. 2) 题解
【比赛链接】Div. 1Div. 2【题解链接】点击打开链接**【Div.2 A】**Golden Plate【思路要点】直接循环计算答案即可。时间复杂度 O(K)O(K)O(K) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5;type...原创 2018-10-22 20:54:05 · 725 阅读 · 0 评论 -
【CodeForces】CodeForces Round #516 (Div. 1) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Oh Those Palindromes【思路要点】一个字符串是回文串的一个必要条件是该字符串的第一个字符与最后一个字符相同。因此,记字符 xxx 出现的次数为 cntxcnt_xcntx ,一个字符串回文子串个数的上界为 ∑i=az(cnti+12)\sum_{i=a}^{z}\binom{cnt_...原创 2018-10-17 11:27:01 · 318 阅读 · 0 评论 -
【CodeForces】Lyft Level 5 Challenge 2018 - Elimination Round (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**King Escape【思路要点】皇后会攻击到 888 条直线,其中 444 条斜向的可以跨过,因此可以忽略。判断起始点和目标点是否在其余 444 条线分割出的同一个联通块内即可。时间复杂度 O(1)O(1)O(1) 。【代码】#include<bits/stdc++.h>us...原创 2018-10-10 15:16:22 · 402 阅读 · 0 评论 -
【CodeForces】CodeForces Round #406 (Div. 1) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Berzerk【思路要点】博弈搜索,将状态按先后手拆点,建出游戏图。若一个点存在出边指向必败态,则该点为必胜态。若一个点所有出边指向必胜态,则该点为必败态。不满足上述两点的点为平局态。用一个类似拓扑排序的过程实现即可。时间复杂度 O(N2)O(N^2)O(N2) 。【代码】#inclu...原创 2018-09-27 18:13:18 · 354 阅读 · 0 评论 -
【CodeForces】Avito Code Challenge 2018 (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Antipalindrome【思路要点】当所有字符相同,答案为 000 。否则,若原串为回文串,删去其最后一个字符一定会使其变成非回文串,因此答案为 N−1N-1N−1 ,否则答案为 NNN 。时间复杂度 O(N)O(N)O(N) 。【代码】#include<bits/stdc++.h...原创 2018-10-25 19:56:20 · 423 阅读 · 0 评论 -
【CodeForces】CodeForces Round #512 (Div. 1) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Vasya and Triangle【思路要点】任何三格点角形的面积均是 0.50.50.5 的整数倍,因此当 2∗N∗M2*N*M2∗N∗M 不是 kkk 的倍数,问题无解。否则,令 g=gcd(N,k),tnp=Ng,tmp=M∗gkg=gcd(N,k),tnp=\frac{N}{g},tmp=\f...原创 2018-09-26 13:46:11 · 389 阅读 · 0 评论 -
【CodeForces】CodeForces Round #511 (Div. 1) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Enlarge GCD【思路要点】令所有数的 gcdgcdgcd 为 ggg ,将所有数除去 ggg ,问题变为了所有数的 gcdgcdgcd 为 111 的情况。我们要选出一个最大的数集,使得这个数集中的数存在不为 111 的公因数。显然我们只需要考虑所有质数即可,线性筛求出每个数的最小质因子,质因...原创 2018-09-25 11:22:38 · 402 阅读 · 0 评论 -
【CodeForces348D】Turtles
【题目链接】点击打开链接【思路要点】直接应用 Lindström–Gessel–Viennot lemma 即可。时间复杂度 O(N∗M)O(N*M)O(N∗M) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 3005;const int P = 1e9 + 7;t...原创 2018-09-19 13:16:31 · 420 阅读 · 0 评论 -
【CodeForces】CodeForces Round #507 (Div. 1) 题解
【比赛链接】 点击打开连接 【题解链接】 点击打开链接 **【A】**Timetable 【思路要点】 首先,若存在任何一组合法解,有 bi≥ai+t&amp;amp;amp;nbsp;(1≤i≤N)bi≥ai+t&amp;amp;amp;nbsp;(1≤i≤N)b_i≥a_i+t\ (1≤i≤N) 。 对于每一个 xixix_i ,应当满足 xi≥i,&原创 2018-09-10 20:47:42 · 515 阅读 · 0 评论 -
【CodeForces】Manthan, Codefest 18 (Div. 1 + Div. 2) 题解
【比赛链接】 点击打开连接 【题解链接】 点击打开链接 **【A】**Packets 【思路要点】 可以用 1,2,4,...,2i,N−2i+1+11,2,4,...,2i,N−2i+1+11,2,4,...,2^i,N-2^{i+1}+1 构造一组最优的可行方案。 其中 iii 为使得 N−2i+1+1&amp;gt;0N−2i+1...原创 2018-09-05 11:34:15 · 397 阅读 · 0 评论 -
【CodeForces】Educational Codeforces Round 47 题解
【比赛链接】 点击打开链接 【题解链接】 点击打开链接 **【A】**Game Shopping 【思路要点】 按照题意模拟。 时间复杂度 O(N)O(N) O(N) 。 【代码】 #include&lt;bits/stdc++.h&gt;using namespace std;const int...原创 2018-08-30 13:15:24 · 388 阅读 · 0 评论 -
【CodeForces】CodeForces Round #504 (Div. 1 + Div. 2) 题解
【比赛链接】 点击打开连接 【题解链接】 点击打开链接 **【A】**Single Wildcard Pattern Matching 【思路要点】 判断 SSS 的星号前后是否为 TTT 中不相交的前缀和后缀。 时间复杂度 O(N+M)O(N+M) O(N+M) 。 【代码】 #include&amp;amp;lt;bi...原创 2018-09-07 21:34:59 · 344 阅读 · 0 评论 -
【CodeForces】AIM Tech Round 5 (Div. 1 + Div. 2) 题解
【比赛链接】 点击打开连接 【题解链接】 点击打开链接 **【A】**Find Square 【思路要点】 答案即为所有黑色方格坐标的平均值。 时间复杂度O(N∗M)O(N∗M)O(N*M)。 【代码】 #include&lt;bits/stdc++.h&gt;using namespace std;c...原创 2018-08-29 15:40:09 · 400 阅读 · 0 评论 -
【CodeForces506E】Mr. Kitayuta's Gift
【题目链接】点击打开链接【思路要点】首先有一个简单的 O(∣S∣3+N∗∣S∣2)O(|S|^3+N*|S|^2)O(∣S∣3+N∗∣S∣2) 的 dpdpdp 做法,即从结果串的两边向中间 dpdpdp 。这个方法同样可以对于所有 M≤NM≤NM≤N 算出所有答案。由数据范围,本题的正解很可能是矩阵乘法优化 dpdpdp ,不妨用上述 dpdpdp 计算较小范围的答案,然后...原创 2018-11-22 13:29:08 · 1192 阅读 · 0 评论 -
【CodeForces】Hello 2019 (Div. 1 + Div. 2) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Gennady and a Card Game【思路要点】按照题意模拟。时间复杂度 O(1)O(1)O(1) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5;typedef lo...原创 2019-01-09 13:01:13 · 957 阅读 · 2 评论 -
【CodeForces】CodeForces Global Round 1 题解
【比赛链接】点击打开连接【题解链接】点击打开链接**【A】**Parity【思路要点】分 bbb 的奇偶性讨论即可。时间复杂度 O(k)O(k)O(k) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5;typedef long long l...原创 2019-02-14 13:55:38 · 919 阅读 · 2 评论 -
【CodeForces773F】Test Data Generation
【题目链接】点击打开链接【思路要点】题目给出的限制等价于: NNN 为奇数, aNa_NaN 为偶数, aNg\frac{a_N}{g}gaN 为奇数。考虑枚举 aNa_NaN 的因子 222 的个数,并令 ggg 也含有那么多因子 222 ,则问题转化为了:求有多少个长度为奇数的递增序列,满足最后一位也为奇数,且长度在 NNN 以内,值域在 VVV 以内。记 odd...原创 2019-08-26 16:07:59 · 367 阅读 · 0 评论 -
【CodeForces1153F】Serval and Bonus Problem
【题目链接】点击打开链接【思路要点】不妨令线段长为 111 ,最后将答案乘以 lll 。记 p(x)p(x)p(x) 表示坐标 xxx 被包含的概率,则有 E(Ans)=∫01p(x)dxE(Ans)=\int_{0}^{1}p(x)dxE(Ans)=∫01p(x)dx不难发现 p(x)=∑i=kN(Ni)(2x(1−x))i(x2+(1−x)2)N−ip(x)=\sum_...原创 2019-08-25 11:48:08 · 279 阅读 · 0 评论 -
【CodeForces1188E】Problem from Red Panda
【题目链接】点击打开链接【思路要点】我们称将其余每一种颜色的气球各一个标为颜色 iii 为操作 iii 。考虑对于给定的 {ai}\{a_i\}{ai} ,如何判断是否能够进行 aia_iai 次操作 iii ,下称 {ai}\{a_i\}{ai} 是否可行。显然最优的方案是每一次操作一个 aia_iai 不为 000 且对应的气球数最少的颜色。按照这样的策略,可以...原创 2019-08-25 11:12:45 · 543 阅读 · 3 评论 -
【CodeForces1202F】You Are Given Some Letters...
【题目链接】点击打开链接【思路要点】枚举周期 ppp ,考虑如何判断其是否合法。记 N=a+b,r=⌊Np⌋N=a+b,r=\lfloor\frac{N}{p}\rfloorN=a+b,r=⌊pN⌋ ,那么最后一段有 N%rN\% rN%r 个字符,其中至少有 a%ra\% ra%r 个 AAA , b%rb\%rb%r 个 BBB ,因此一个必要条件为 N%r≥a%r+b%...原创 2019-08-11 17:06:26 · 451 阅读 · 0 评论 -
【CodeForces1205E】Expected Value Again
【题目链接】点击打开链接【思路要点】一个字符串存在 borderborderborder iii 等价于其存在周期 N−iN-iN−i 。记 p(i)p(i)p(i) 表示是否存在周期 iii ,由期望的线性性,答案即为 ∑i,jE(p(i)p(j))\sum_{i,j}E(p(i)p(j))∑i,jE(p(i)p(j)) 。考虑枚举 i,ji,ji,j ,如何计算 E(p...原创 2019-08-24 15:18:06 · 568 阅读 · 0 评论 -
【CodeForces】CodeForces Global Round 3 题解
【比赛链接】点击打开连接【题解链接】点击打开链接【A】 Another One Bites The Dust【思路要点】答案为 2c+2min{a,b}+[a≠b]2c+2min\{a,b\}+[a\ne b]2c+2min{a,b}+[a̸=b]。时间复杂度 O(1)O(1)O(1) 。【代码】#include<bits/stdc++.h>...原创 2019-06-03 13:48:09 · 766 阅读 · 0 评论 -
【CodeForces725G】Messages on a Tree
【题目链接】点击打开链接【思路要点】将询问 (x,t)(x,t)(x,t) 按照 depthx+tdepth_x+tdepthx+t 为第一关键字, xxx 为第二关键字排序,那么首先,所有询问只会收到其之前的询问的影响,因此我们可以依次处理它们。其次,可以发现,如此排序后,排在前面的询问将比排在后面的询问先到达任何一个两个询问都会到达的点。考虑记录 timeritimer...原创 2019-04-12 15:33:05 · 350 阅读 · 0 评论 -
【CodeForces704E】Iron Man
【题目链接】点击打开链接【思路要点】考虑链上做法,每个人的坐标是一个关于时间的一次函数。注意到当且仅当两人相碰,两人位置的相对顺序会发生改变,换言之,在两人相碰之前,所有人位置的相对顺序不变。排序所有人出现,消失的事件,用平衡树维护所有人的相对位置即可。回到原题,对原树进行树链剖分,对每条重链和轻边都运行链上做法即可。时间复杂度 O(N+MLog2N)O(N+MLog^2...原创 2019-04-12 15:33:11 · 514 阅读 · 0 评论 -
【CodeForces645G】Armistice Area Apportionment
【题目链接】点击打开链接【思路要点】考虑找到使得 ∣PX−QX∣|PX-QX|∣PX−QX∣ 最小的 XXX , XXX 应为 PPP 关于 lll 的对称点 P′P'P′ 与 QQQ 所连直线与 lll 的交点,若两直线平行,则 XXX 可取无穷远处的一点。此时 ∣PX−QX∣=P′Q|PX-QX|=P'Q∣PX−QX∣=P′Q ,因此原问...原创 2019-04-12 15:33:18 · 355 阅读 · 0 评论 -
【CodeForces1139F】Dish Shopping
【题目链接】点击打开链接【思路要点】将一个人 (inc,pref)(inc,pref)(inc,pref) 看做平面上一点 (x,y)(x,y)(x,y) ,一件物品即为对于一个对称轴与 XXX 轴平行的等腰三角形的 +1+1+1 操作。考虑扫描线,在 x=px=px=p 处加入一对直线,并在 x=s+1x=s+1x=s+1 处删除它们,我们需要在这个过程中支持询问某一点在多少...原创 2019-04-05 14:30:35 · 412 阅读 · 0 评论 -
【CodeForces】CodeForces Round #562 (Div. 1) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接【A】 Increasing by Modulo【思路要点】二分答案,贪心判断。时间复杂度 O(NLogM)O(NLogM)O(NLogM) 。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 3e5 + 5;t...原创 2019-05-28 15:13:38 · 452 阅读 · 0 评论