Codeforces 576D Flights for Regular Customers (图论、矩阵乘法、Bitset)
摘要:题目链接 http://codeforces.com/contest/576/problem/D 题解 把边按$t_i$从小到大排序后枚举$i$, 求出按前$(i 1)$条边走$t_i$步能到达的点的集合,以它们为起点求$n$号点的最短路。 前者等于前$(i 2)$条边走$t_{i 1}$步能到达的
阅读全文
Luogu P5652 基础博弈练习题 (博弈论、图论)
摘要:题目链接 https://www.luogu.org/problem/P5652 题解 好题,想了四小时…… 首先考虑如何判断胜负: 首先假设只有一个柱子,那就是奇败偶胜。不难发现最后一个奇数后面的偶数不影响结局,考虑最后一个奇数,它前面连续至少$m$个柱子都是必胜的。从它前面第$(m+1)$个柱子
阅读全文
【学习笔记】OI模板整理
摘要:CSP2019前夕整理一下模板,顺便供之后使用 0. 非算法内容 0.1. 读入优化 描述: 使用getchar()实现的读入优化。 代码: inline int read() { int x=0; bool f=1; char c=getchar(); for(;!isdigit(c);c=get
阅读全文
Codeforces 1246D/1225F Tree Factory (构造)
摘要:题目链接 https://codeforces.com/contest/1246/problem/D 题解 首先考虑答案的下界是$n 1 dep$ ($dep$为树的深度,即任何点到根的最大边数),因为每一次操作只会使一个子树内的点深度$ 1$, 也就最多使得最大深度$ 1$. 那么这个下界能否达到
阅读全文
【做题记录】Codeforces做题记录(20190705~20200506)
摘要:Codeforces Div. 1 做题记录。 如果一场比赛做完了大部分题会单独开文章发题解,否则暂时写在这里。 暂定从中考后的Codeforces Round #572开始。 比赛按时间顺序而非题号顺序排列。 UPD 2021.01.27: 啊这我又回来了,一(其实是 3/4)个学期文化课落了不知
阅读全文
BZOJ 4388 [JOI2012春季合宿]Invitation (线段树、二叉堆、最小生成树)
摘要:题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=4388 题解 模拟Prim算法? 原题所述的过程就是Prim算法求最大生成树的过程。于是我们可以知道起始点并没有影响。 那么就用数据结构模拟Prim算法吧。 首先离散化所有区间,每个区间只需
阅读全文
BZOJ 4221 [JOI2012春季合宿]Kangaroo (DP)
摘要:题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=4221 题解 orz WYC 爆切神仙DP 首先将所有袋鼠按大小排序。考虑从前往后DP, 设$f[i][j]$表示前$i$个元素形成了$j$条链。 然而需要处理“套到不能套为止”的问题,因此
阅读全文
LOJ #2731 [JOI2016春季合宿]Solitaire (DP、组合计数)
摘要:题目链接 https://loj.ac/problem/2731 题解 首先一个很自然的思路是,设$dp[i][j]$表示选了前$i$列,第$2$行第$i$列的格子是第$j$个被填上的。 还要加个第三维$0/1$,表示第$2$行第$i$列不是/是这一列最后一个被填上的(这决定了它是被上下填上还是被左
阅读全文
LOJ #2733 [JOI2016春季合宿]Sandwiches (DP)
摘要:题目链接 https://loj.ac/problem/2733 题解 神仙题…… 首先可以观察到一个结论: 目标块的两块小三明治一定分别是最后和倒数第二个被吃的。 由此我们可以考虑这两块谁先被吃。这样的好处就是,起初我们一个块被吃的依赖条件是某两个块中有一个被吃就行,现在两个块中的某一个已经钦定了
阅读全文
LOJ #2734 Luogu P3615 [JOI2016春季合宿]Toilets (结论、贪心)
摘要:题目链接 (loj) https://loj.ac/problem/2734 (luogu) https://www.luogu.org/problem/P3615 题解 嗯,考场上肝了$3h$然而最后发现一个智障地方没想到……我果然还是菜的真实啊 首先队列合法(能在$N$分钟内解决)当且仅当: 每
阅读全文
[JOI2012春季合宿]Rotate (链表)
摘要:题意 题解 又是一道神仙题…… 显然的做法是大力splay,时间复杂度$O((N+Q)N\log N)$, 可以卡掉。 正解: 使用十字链表维护矩阵,在周围增加第$0$行/列和第$(n+1)$行/列,设$li[x][d]$表示$x$这个点在$d$这个方向上的下一个元素的编号是什么(一开始给每个元素都
阅读全文
[JOI2012春季合宿]Constellation (凸包)
摘要:题意 题解 神仙结论题。 结论: 一个点集合法当且仅当其凸包上的两种颜色点分别连续。 证明: 必要性显然。 充分性: 考虑对于一个不同色三角形$ABC$,不妨设点$A$为白点,点$B,C$为黑点。若形内无白点,则随便连,显然成立。若形内有白点,则任取一白点$S$, 对三角形$SBC,BAS,CAS$
阅读全文
BZOJ 4814 Luogu P3699 [CQOI2017]小Q的草稿 (计算几何、扫描线、set)
摘要:题目链接 (BZOJ) http://lydsy.com/JudgeOnline/problem.php?id=4814 (Luogu) https://www.luogu.org/problem/P3699 题解 写了这么多扫描线依然不会写。。 首先思路非常简单,枚举每个点,把所有的直线按照极角序
阅读全文
BZOJ 4823 Luogu P3756 [CQOI2017]老C的方块 (网络流、最小割)
摘要:题目链接 (Luogu) https://www.luogu.org/problem/P3756 (BZOJ) http://lydsy.com/JudgeOnline/problem.php?id=4823 题解 有点神仙的最小割题。 考虑题目里的图形,如果我们用四种颜色对棋盘进行染色,奇数行依次
阅读全文
AtCoder AGC004F Namori (图论)
摘要:题目链接 https://atcoder.jp/contests/agc004/tasks/agc004_f 题解 神仙题。。 首先考虑树的情况,树是二分图,因此假设我们对二分图进行黑白染色,那么操作就变成了,每次选择两个不同色的点来取反。然后再把黑色视作标记,那么问题就变成了,初始一些点上有标记,
阅读全文
BZOJ 5267 特工 (类FWT)
摘要:题意 题解 从大到小枚举$l$, 把一个序列从$2^{l+1}$分成两个独立的$2^l$,去除两半的影响。 设去除前的序列为$b$, 去除后序列为$b'$ 则有$b_{2^{l+1} 1} b_{2^l 1}=\sum^{2^{l+1} 1}_{i=2^l}b_i$ 考虑左边的一个位置$d$与右边的
阅读全文
AtCoder AGC032E Modulo Pairing (二分、贪心与结论)
摘要:题目链接 https://atcoder.jp/contests/agc032/tasks/agc032_e 题解 猜结论好题。 结论是: 按$a_i$从小到大排序之后,一定存在一种最优解,使得以某个位置为界,两边分别首尾匹配,且满足左边的每一对的和都$ include include includ
阅读全文
AtCoder AGC038F Two Permutations (网络流、最小割)
摘要:题目链接 https://atcoder.jp/contests/agc038/tasks/agc038_f 题解 好题。 首先观察到一个性质,对于排列$P$, 其所形成的每个轮换中的点$A_i$是选$i$还是选$P_i$的状态必须相同。$Q_i$同理。 然后转化成最小化$A_i=B_i$的位置$i
阅读全文
AtCoder AGC038D Unique Path (图论)
摘要:题目链接 https://atcoder.jp/contests/agc038/tasks/agc038_d 题解 orz zjr神仙做法 考虑把所有$C_i=0$的提示的两点连边,那么连完之后的每个连通块都是一棵树 那么同一连通块内就不能出现$C_i=1$的提示,然后不同连通块之间可以任意连边,但
阅读全文
AtCoder AGC004E Salvage Robots (DP)
摘要:题目链接 https://atcoder.jp/contests/agc004/tasks/agc004_e 题解 本题的难度不在于想到大体思路,而在于如何把代码写对。。 首先我们可以不让机器人动,让出口和边界一起动。 然后设$dp[l][r][u][d]$表示出口往四个方向分别动了最多$l,r,u
阅读全文