自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 POJ 3422 最大费用流

题意传送门 POJ 3422 Kaka’s Matrix Travels题解此类点或边带有权值和上界限制的最优化问题,恰好与费用流的模型非常相似。使用点边转化的技巧,将格子 (i,j)(i,j)(i,j) 代表的节点拆为“入点” xxx 与“出点” x′x'x′。从每个 (i,j)(i,j)(i,j) 的 xxx 向 x′x'x′ 连一条容量为 111 费用为 matrix[i][j]matrix[i][j]matrix[i][j] 的边,以及一条容量为 k−1k-1k−1 费用为 000 的边

2021-03-31 21:59:46 155

原创 POJ 1966 枚举 + Dinic

题意传送门 POJ 1966 Cable TV Network题解若无向图不连通,则图中至少存在两个点不连通,则可以枚举这两个点。若两个不同的点 s,ts,ts,t 因为删去某个点集而不连通,那么 s,ts,ts,t 间不存在直接相连的边。问题转化为去掉最少的点,使当前枚举的两个点不连通。使用点边转化的技巧,将割点集转化为割边集。具体而言,将每个节点 xxx 拆成“入点” xxx 与“出点” x′x'x′;除了 s,ts,ts,t,其余节点从入点向出点连一条容量为 111 的边;无向图中的边,转化为

2021-03-31 20:10:08 88

原创 AcWing 380 Dinic + Tarjan SCC

题意传送门 AcWing 380 舞动的夜晚题解求二分图最大匹配的不可行边,即可行边的补集。若 (x,y)(x,y)(x,y) 至少属于一个最大匹配的的方案,则称 (x,y)(x,y)(x,y) 为二分图最大匹配的可行边。考虑网络计算二分图最大匹配的残余网络,此时非匹配边剩余容量为 111,匹配边剩余容量为 000。显然,当前最大匹配包含的边为可行边。考虑图中任意的非匹配边,其端点至少有一个是匹配点;否则,匹配数增大,与匹配的最大性矛盾。设源点、汇点分别为 S,TS,TS,T,若边 (x,y)(

2021-03-31 15:49:28 79

原创 CodeCraft-21 and Codeforces Round #711 (Div. 2)

传送门CodeCraft-21 and Codeforces Round #711 (Div. 2)A333 的倍数各位数字求和依然是 333 的倍数,相邻 333 个数字中必有 111 个满足条件。从小到大枚举 333 个数字即可。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 105;int T;ll N;ll gcd(ll a, ll b) { retu

2021-03-31 09:14:03 233

原创 POJ 2311 Nim + SG

题意传送门 POJ 2311 Cutting Game题解考虑 NimNimNim 博弈。必胜态为切割出 1×11\times 11×1 的格子的回合,此时格子规模为 1×X1\times X1×X 或 X×1X\times 1X×1,则求解 SGSGSG 函数时状态转移保证长、宽至少为 222,若无法转移,则为有向图游戏中的终止局面,此时 SGSGSG 函数为 000。记忆化搜索求解,总时间复杂度 O(WH)O(WH)O(WH)。#include <algorithm>#includ

2021-03-30 23:52:18 77

原创 P4298 [CTSC2008] Dilworth 定理

题意传送门 P4298 [CTSC2008]祭祀题解DilworthDilworthDilworth 定理:对于任意有限偏序集,其最大反链中元素的数目必等于最小链划分中链的数目。即 DAGDAGDAG 中最长反链的大小,等于最小路径可重点覆盖的大小。反链定义为 DAGDAGDAG 中的一个节点子集 SSS,任意不同的两点 u,v∈Su,v\in Su,v∈S 相互不可达。最小路径可重点覆盖,即给定一个 DAGDAGDAG,要求用尽可能少的可相交路径,覆盖 DAGDAGDAG 的所有节点,此时一

2021-03-29 21:59:52 134

原创 P4577 [FJOI2018] DP + 线段树合并

题意传送门 P4577 [FJOI2018]领导集团问题题解求树上最大节点子集,若子集中 jjj 为 iii 的子孙节点,则有 wj≥wiw_j\geq w_iwj​≥wi​。参考 LISLISLIS 问题的求解思路,设 dp[i][j]dp[i][j]dp[i][j] 为以 iii 为根的子树上规模为 jjj 的满足条件节点子集中最小点权的最大值,此时 dp[i]dp[i]dp[i] 的规模,即 jjj 的最大值为答案。考虑如何合并子树信息,以 kkk 为根的子树上的 dp[k][j]dp[k]

2021-03-29 15:43:58 120

原创 ZOJ 1654 二分图最大匹配

题意传送门 ZOJ 1654 Place the Robots题解每一行、列上被墙分隔的块,至多被一个镭射覆盖;预处理出这样的块,将行块作为左部节点,列块作为右部节点,将空白区域上的点可覆盖的行、列块连边。求解二分图最大匹配即可。#include <bits/stdc++.h>using namespace std;const int maxn = 55, maxv = maxn * maxn, maxe = maxv * maxn;int T, N, M, fn[maxn][ma

2021-03-29 00:05:29 153

原创 POJ 1112 二分图判定 + DP

题意传送门 POJ 1112 Team Them Up!题解建立原图的补图,即若两个人之间不相互认识,则连一条边;此时一条边的两个端点不能分在同一组中。那么判断是否存在可行的分组方案,染色法进行二分图判定即可。由于 N≥2N\geq 2N≥2,则若补图是二分图,则满足每一组至少存在一个人。记录补图连通分量 iii 染色为 kkk 的节点数 sum[i][k]sum[i][k]sum[i][k]。设两个组为 A,BA,BA,B,则问题转化为求解从每一个连通分量中选取染为某个颜色的节点集合加入 AAA,

2021-03-28 22:35:34 207

原创 POJ 1325 二分图最小点覆盖

题意传送门 POJ 1325 Machine Schedule题解将机器 AAA 的模式看做左部节点,机器 BBB 的模式看做右部节点,将需要完成的任务看做匹配边,则得到一个二分图,完成全部任务需要的模式构成一个点覆盖。因为初始时机器都处于模式 000,则不考虑端点为 A/BA/BA/B 模式 000 的边,答案为二分图的最小点覆盖。总时间复杂度 O(NK)O(NK)O(NK)。#include <algorithm>#include <cstdio>#include &

2021-03-28 16:32:49 118

原创 AcWing 374 二分 + 二分图最大匹配

题意传送门 Acwing 374 导弹防御塔题解击退入侵者的时间满足单调性,二分答案。则转化为指派问题,将入侵者作为左部节点,防御塔与发射时间的二元组作为右部节点。在二分值代表的时间内若防御塔 T1+k×(T1+T2),k≥0T_1+k\times (T_1+T_2),k\geq 0T1​+k×(T1​+T2​),k≥0 时发射的炮弹能击退入侵者,则在防御塔与入侵者之间连边。求二分图最大匹配,判断是否等于 MMM 即可。单次求解二分图最大匹配时间复杂度 O(VE)O(VE)O(VE),本题中为 O(

2021-03-28 12:19:38 90

原创 POJ 3648 2-SAT

题意传送门 POJ 3648 Wedding题解定义布尔变量 xix_ixi​xi为真⇔参与者i位于新娘座位一侧x_i为真\Leftrightarrow 参与者i位于新娘座位一侧xi​为真⇔参与者i位于新娘座位一侧 则对于每一对夫妻 i,ji,ji,j,都有 ¬(xi∧xj)∨(¬xi∧¬xj))\lnot (x_i\land x_j)\lor (\lnot x_i\land \lnot x_j))¬(xi​∧xj​)∨(¬xi​∧¬xj​));对于每一对不能同时出现在新娘对侧的组合 i,ji,ji

2021-03-27 22:13:27 85

原创 P3209 [HNOI2010] 平面图 + 2-SAT / 并查集

题意传送门 P3209 [HNOI2010] 平面图判定题解定理:设 GGG 为一简单连通平面图,其顶点数 v≥3v\geq 3v≥3,其边数为 eee,那么 e≤3×v−6e\leq 3\times v-6e≤3×v−6。传送门 证明根据简单图是平面图的必要条件,在 e>3×v−6e>3\times v-6e>3×v−6 时,判定图是非平面图。其余情况, mmm 的规模缩小为与 nnn 同量级。图中的某条边,画在平面上后(并非一定为直线),可能位于哈密顿回路内部或外部。显然

2021-03-27 20:38:31 100

原创 Codeforces 1497E2 线性筛 + 尺取法 + DP

题意Codeforces 1497E2 Square-free division (hard version)题解根据算数基本定理,设 a=∑pieia=\sum p_i^{e_i}a=∑piei​​。若两个数字的乘积为完全平方数,则两个数字指数项 eie_iei​ 为奇数的质因子 pip_ipi​ 构成的集合相同,那么可以用这样的质因子的乘积 ∏pi\prod p_i∏pi​ 唯一的表示。则同一段中的限制条件转化为不存在两个数字的唯一表示相同。枚举最后一段的左端点,dp[i][j]dp[i][j]

2021-03-27 16:05:38 138

原创 P5319 [BJOI2019] 二分 + AC 自动机 + DP

题意传送门 P5319 [BJOI2019]奥术神杖题解求 ∏Vic\sqrt[c]{\prod V_i}c∏Vi​​ 的最大值。若直接计算,需要上高精度;暴力枚举更换的宝石,总时间复杂度 O(10N)O(10^N)O(10N)。将答案取对数进行考虑 ∑ln⁡Vic\frac{\sum \ln V_i}{c}c∑lnVi​​ 则转化为 0/10/10/1 分数规划问题。二分答案的对数值,判定是否存在满足下式的方案 ∑(ln⁡Vi−x)≥0\sum (\ln V_i-x)\geq 0∑(lnVi​−x)

2021-03-26 12:29:17 76

原创 Codeforces 1497D DP

题意传送门 Codeforces 1497D Genius题解观察 ∣ci−cj∣\lvert c_i-c_j\rvert∣ci​−cj​∣,设 i<ji<ji<j,则结果为二进制表示下第 [i,j−1][i,j-1][i,j−1] 位为 111 的数字;则对于不同的 (i,j)(i,j)(i,j) 对,∣ci−cj∣\lvert c_i-c_j\rvert∣ci​−cj​∣ 值不同。若将状态表示为路径终点与路径上边权可以取到的最大值组成的二元组,以 ∣ci−cj∣\lvert c_

2021-03-24 10:14:33 187

原创 Codeforces 1497C2 LCM

题意传送门 Codeforces 1497C2 k-LCM (hard version)题解不易直接构造一组解。对于 LCMLCMLCM 而言,111 对其无贡献,将解其中的 k−3k-3k−3 个数字赋 111,转化为 k′=3,n′=n−(k−3)k'=3,n'=n-(k-3)k′=3,n′=n−(k−3) 情况下的问题。当 k=3k=3k=3,若 nnn 为奇数,则有一组解 (1,n/2,n/2)(1,n/2,n/2)(1,n/2,n/2)。同样的,当 nnn 为偶数,可以构造 (2,n/2

2021-03-23 22:58:44 165

原创 Codeforces Round #709 (Div. 2, based on Technocup 2021 Final Round)

传送门Codeforces Round #709 (Div. 2, based on Technocup 2021 Final Round)A每个格子至少取一条边进行删除,则删除的格子数 n≥a×bn\geq a\times bn≥a×b;若能构造出一个解使 n=a×bn=a\times bn=a×b,则可证明答案为 a×ba\times ba×b。对于每一行,取格子左侧的边进行删除,即可使所有格子都存在一条通向监狱外侧的路径,此时删除的边数为 a×ba\times ba×b。#include &l

2021-03-22 12:25:40 371 2

原创 POJ 3683 2-SAT

题意传送门 POJ 3683 Priest John’s Busiest Day题解定义布尔变量 xix_ixi​ xi为真⇔仪式在婚礼开始时举行x_i为真\Leftrightarrow 仪式在婚礼开始时举行xi​为真⇔仪式在婚礼开始时举行 O(N2)O(N^2)O(N2) 枚举婚礼开始与结束可举行仪式的时间段,对冲突的两段仪式写出和取范式。TarjanTarjanTarjan 分解 SCCSCCSCC,求解 2−SAT2-SAT2−SAT 问题。#include <algorithm>

2021-03-20 23:50:28 94

原创 POJ 3678 2-SAT

题意传送门 POJ 3678 Katu Puzzle题解将布尔方程写为和取范式。例如,a⊕b=0a\oplus b=0a⊕b=0,写为 ¬((a∧¬b)∨(¬a∧b))\lnot ((a\land \lnot b)\lor (\lnot a\land b))¬((a∧¬b)∨(¬a∧b))。将每个子句 (a∨b)(a\lor b)(a∨b) 改写成等价形式 (¬a⇒b∧¬b⇒a)(\lnot a\Rightarrow b \land \lnot b\Rightarrow a)(¬a⇒b∧¬b⇒a)。

2021-03-20 22:32:49 76 1

原创 P4819 [中山市选] Tarjan SCC

题意传送门 P4819 [中山市选]杀人游戏题解若 xxx 认识 yyy,则从 xxx 向 yyy 连一条有向边,得到一张有向图。观察发现,若存在环,那么任取环上一点即可,则有 1/N1/N1/N 的概率是杀手;否则,可获取下一个节点的身份,直到环上最后一个节点或发现杀手。那么使用 TarjanTarjanTarjan 算法求解 SCCSCCSCC,缩减建图,得到一个 DAGDAGDAG。对于入度为 000 的点 xxx,显然无法通过检查其他节点来获取 xxx 的身份,那么需要检查这个节点。对于入度

2021-03-20 21:01:50 78

原创 POJ 2762 Tarjan SCC

题意传送门 POJ 2762 Going from u to v or from v to u?题解判断图中任意两点间是否都存在至少一条路径。TarjanTarjanTarjan 求解 SCCSCCSCC,缩点建立新图,得到一个 DAGDAGDAG。对于同一个 SCCSCCSCC 内的两个点,满足条件。问题转化为判断 DAGDAGDAG 上任意两点间是否存在至少一条路径。可以观察到,当 DAGDAGDAG 中某个节点入度或出度大于 111,则必然存在不满足条件的两个节点;满足条件的 DAGDAGDA

2021-03-20 19:34:25 123

原创 AcWing 369 DP + 尺取法

题意传送门 AcWing 369 PKU ACM Team’s Excursion题解使用两个区间覆盖 DAGDAGDAG 中两段长度不超过 qqq 的部分,使 DAGDAGDAG 种未覆盖的必经边长度之和最小。fs[i],ft[i]fs[i],ft[i]fs[i],ft[i] 分别代表从 S,TS,TS,T 出发走到 iii 的路径数,使用拓扑序 DPDPDP 分别在正图、反图上求解。枚举边集,对于一条有向边 (x,y)(x,y)(x,y),若满足 fs[x]×ft[y]=fs[T]fs[x]\t

2021-03-20 16:39:07 156

原创 POJ 2186 Tarjan SCC

题意传送门 POJ 2186 Popular Cows题解TarjanTarjanTarjan 求解 SCCSCCSCC,考虑缩点后得到的 DAGDAGDAG。满足条件的节点一定在 DAGDAGDAG 唯一的出度为 000 的 SCCSCCSCC,即自底而上求的最小拓扑序的 SCCSCCSCC 中,构造反图,判断这个 SCCSCCSCC 中的某个节点是否可以遍历所有的点即可。总时间复杂度 O(N+M)O(N+M)O(N+M)。#include <algorithm>#include &

2021-03-19 21:53:42 84

原创 AcWing 368 差分约束系统 + Tarjan SCC + 拓扑序 DP

题意传送门 AcWing 368 题解将各类关系转化为差分约束系统,求解各节点亮度的最小值,将其转化为求解最长路。设 ddd 代表节点的亮度。T=1T=1T=1 时,d[A]−d[B]≥0,d[B]−d[A]≥0d[A]-d[B]\geq 0,d[B]-d[A]\geq 0d[A]−d[B]≥0,d[B]−d[A]≥0;T=2T=2T=2 时,d[B]−d[A]≥1d[B]-d[A]\geq 1d[B]−d[A]≥1;T=3T=3T=3 时,d[A]−d[B]≥0d[A]-d[B]\geq 0d[A

2021-03-19 21:22:45 113

原创 AcWing 400 贪心 + 欧拉回路

题意传送门 AcWing 400 太鼓达人题解长度为 KKK 的 010101 串共有 2K2^K2K 种,需尽可能多地通过环上的顺时针移动,遍历不同的 010101 串,并返回初始串。将 KKK 长的 010101 串看做边,权值为 010101 串的最后一位数字,将出边代表的 010101 串的 K−1K-1K−1 长前缀看做点。每个点各有 222 条出边与入边,则存在有向图的欧拉回路。以点 000 为起点求解欧拉回路,为保证字典序最小,贪心地从权值较小的边开始递归。总时间复杂度 O(2K)O(2

2021-03-19 18:00:29 72

原创 POJ 1041 贪心 + 欧拉回路

题解传送门 POJ 1041 John’s trip题解求字典序最小的欧拉回路。DFSDFSDFS 求解欧拉回路时,贪心地先从编号小的边开始递归即可。#include <algorithm>#include <cstdio>#include <cstring>#include <vector>using namespace std;const int maxn = 50, maxm = 2000;struct edge{ int

2021-03-18 22:26:47 118

原创 POJ 2230 欧拉回路

题意传送门 POJ 2230 Watchcow题解求图中每条无向边被正、反两个方向各经过一次的欧拉回路。将各边看做两条无向边,此时各点的度数都为偶数,存在欧拉回路,且各边拆成的两条边必然在欧拉回路上方向相反。DFSDFSDFS 求解欧拉回路,总时间复杂度 O(N+M)O(N+M)O(N+M)。可以更简单地实现。无向边在邻接表中会以正、负两个方向分别保存一次,那么求解时仅对递归的有向边做标记,即可在原图直接求解欧拉回路。#include <algorithm>#include <

2021-03-18 21:13:56 181

原创 HDU 3686 Tarjan v-DCC + 倍增 LCA

题意传送门 HDU 3686 题解求无向图中两条边之间的必经点。v−DCCv-DCCv−DCC 中任意两点都至少被包含在一个简单环中,则任意一条边都至少被包含在一个简单环中;则同一个 v−DCCv-DCCv−DCC 中两条不相同的边之间至少存在两条不重叠的路径,两条边之间的必经点个数为边各自所在的 v−DCCv-DCCv−DCC 之间的割点数量。使用 TarjanTarjanTarjan 算法求解 v−DCCv-DCCv−DCC,同时 DFSDFSDFS 求解原图的边所在的 v−DCCv-DCCv

2021-03-18 20:30:16 147

原创 AcWing 397 Tarjan e-DCC + 倍增 LCA

题意传送门 AcWing 397 逃不掉的路题解TarjanTarjanTarjan 算法求解 e−DCCe-DCCe−DCC,缩点建图,得到一颗树。对每个询问使用倍增 LCALCALCA 求解路径端点所在 e−DCCe-DCCe−DCC 间的距离,因为边权为 111,则这个距离即答案。总时间复杂度 O(M+(N+Q)log⁡N)O(M+(N+Q)\log N)O(M+(N+Q)logN)。#include <bits/stdc++.h>using namespace std;con

2021-03-17 21:01:43 100

原创 POJ 2942 Tarjan v-DCC + 二分图判定

题意传送门 POJ 2942 Knights of the Round Table题解建出补图,即没有仇恨的两个骑士间连边,问题转化为求图中不被任何奇环包含的节点数量。无论是 e−DCCe-DCCe−DCC 或 v−DCCv-DCCv−DCC 都满足在同一环上的两个节点位于相同的双连通分量。否则,将与双连通分量的极大性矛盾。若图中存在奇环,则图不是二分图,可以用 DFSDFSDFS 的染色法判定,但并不能求出所有的奇环。同一个 e−DCCe-DCCe−DCC 中两个不同的环至少存在一个交点;而同一

2021-03-17 20:25:00 92

原创 POJ 3694 Tarjan e-DCC + LCA + 并查集

题意传送门 POJ 3694 Network题解朴素做法是每次添加边使用 TarjanTarjanTarjan 算法求一次割边,总时间复杂度 O(Q(N+M))O(Q(N+M))O(Q(N+M))。实际上被减少的割边不会再次计入。TarjanTarjanTarjan 求解割边,e−DCCe-DCCe−DCC 缩点,构成一棵树。每次查询,将 (x,lca(x,y)),(lca(x,y),y)(x,lca(x,y)),(lca(x,y),y)(x,lca(x,y)),(lca(x,y),y) 路径上的边

2021-03-16 22:53:50 86

原创 P3225 [HNOI2012] Tarjan v-DCC

题意传送门 P3225 [HNOI2012]矿场搭建题解节点坍塌即将节点及其相连边从图中删去,考虑割点。为了保证任一节点坍塌后图中仍存在救援点,则图中至少存在两个救援点。若 v−DCCv-DCCv−DCC 中非割点坍塌,其余节点可以从割点向外走到某个救援节点;若 v−DCCv-DCCv−DCC 割点坍塌,若 v−DCCv-DCCv−DCC 中不存在其余割点,则需要在任一非割点处建立救援点,否则,可以从其余割点向外走到某个救援节点。推论:若图中存在割点,则图中仅有 111 个割点的 v−DCCv-D

2021-03-16 16:55:14 76

原创 POJ 3177 Tarjan e-DCC

题意传送门 POJ 1377 Redundant Paths题解向图中添加数量最少的边,使整个图构成边双连通分量。TarjanTarjanTarjan 算法求解割边,e−DCCe-DCCe−DCC 缩点,构成一棵树。对路径的端点连边,显然比对路径中的点两边连边,影响的点更多,使答案更优。考虑度为 111 的点,任一对这样的点 x,yx,yx,y 连边,都将使路径 (x,lca(x,y),(lca(x,y),y)(x,lca(x,y),(lca(x,y),y)(x,lca(x,y),(lca(x,y)

2021-03-16 10:02:50 55

原创 P3396 根号分治

题意传送门 P3396 哈希冲突题解若 p≤Np\leq \sqrt Np≤N​,每次朴素查询复杂度过高,O(NN)O(N\sqrt N)O(NN​) 预处理,O(N)O(\sqrt N)O(N​) 修改,O(1)O(1)O(1) 查询;若 p>Np>\sqrt Np>N​,朴素查询 O(N)O(\sqrt N)O(N​)。总时间复杂度 O(NN)O(N\sqrt N)O(NN​)。#include <bits/stdc++.h>using namespace std

2021-03-15 22:59:36 144

原创 P3645 [APIO2015] 根号分治 + BFS

题意传送门 P3645 [APIO2015]雅加达的摩天楼题解边权为 111 的图,BFSBFSBFS 即可。考虑 dogedogedoge 的状态,为位置与跳跃能力的二元组,用 (b,p)(b,p)(b,p) 表示。若跳跃能力为 ppp,则其可达位置数为 N/pN/pN/p。考虑根号分治。若 p<Np<\sqrt Np<N​,状态数至多为 O(NN)O(N\sqrt N)O(NN​);若 p≥Np\geq \sqrt Np≥N​,状态数至多为 O(MN)O(M\sqrt N)O(

2021-03-15 21:39:08 145

原创 AcWing 384 二分 + 判定负环

题意传送门 AcWing 394 最优高铁环题解设图中边权为 www,最大化图中环的值∑wi∑1\frac{\sum w_i}{\sum 1}∑1∑wi​​ 0/10/10/1 分数规划问题,转换为满足下式的最大 xxx∑wi∑1>x\frac{\sum w_i}{\sum 1}>x∑1∑wi​​>x 二分答案,边权取 x−wix-w_ix−wi​,判定负环即可。题中有向图不保证连通性,使用基于 DFSDFSDFS 的 SPFASPFASPFA 算法判定负环。基本思想是,若图中

2021-03-15 17:02:11 91

原创 POJ 1275 二分 + 差分约束系统

题意传送门 POJ 1275 Cashier Employment题解不等式问题,考虑转化为差分约束系统。某个时刻 iii 的工作人数为前 888 个小时内开始工作的人数和,将其转化为前缀和 SSS 的差分。设 num[i]num[i]num[i] 为工作开始时间为时刻 iii 的人数。{S[i]≥S[i−1]S[i]−S[i−1]≤num[i]S[i]−S[j]≥{R[i]i>jR[i]−(S[23]−S[−1])i<j,j=(i−8+24)mod  24\begin{cases}S

2021-03-15 10:10:12 126

原创 P2491 [SDOI2011] 树的直径 + 尺取法

题意传送门 P2491 [SDOI2011]消防题解设直径的两个端点为 u,vu,vu,v。根据直径的最长性,任何从 u,pu,pu,p 之间分叉离开直径的子树,其最远点与 ppp 的距离都不会比 ppp 与uuu 的距离更远。在树的直径的分叉上建立枢纽,设路径与树的直径的交点为 ppp,则 ppp 到直径端点 u,vu,vu,v 的路径至少有一条未被覆盖。根据树的直径的最长性,此时不会改变其他节点到所选择路径的距离的最大值。那么只考虑在树的直径上建立枢纽即可。mx[i]mx[i]mx[i]

2021-03-14 22:06:43 84

原创 P3203 [HNOI2010] 分块

题意传送门 P3203 [HNOI2010]弹飞绵羊题解F[i]F[i]F[i] 代表从 iii 位置开始至弹飞的被弹次数,则有递推式 F[i]=F[i+ki]+1F[i]=F[i+k_i]+1F[i]=F[i+ki​]+1。修改任一位置 iii 都可能对 j(j<i)j(j<i)j(j<i) 的位置产生影响,朴素的做法有两种:O(N)O(N)O(N) 进行修改,O(1)O(1)O(1) 进行查询;O(1)O(1)O(1) 进行修改,O(N)O(N)O(N) 进行查询。需要平衡修改与

2021-03-14 20:33:20 61

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除