毒瘤算法
pigzhouyb
一个来自浙江的可爱的萌萌哒的肥肥胖胖的OIer
展开
-
『毒瘤算法系列13』情报传递
Problem\mathrm{Problem}Problem有一个情报网共有nnn个人,通过有向的电话线联络。为保证通信安全,需要满足一些要求,这些要求分为两类:①从第aaa个人通过一条或多条电话线可以联系到第bbb个人;②从第aaa个人通过一条或多条电话线不能联系到第bbb个人。现在作为总工程师的你需要构造一个合法的情报网,使得这个情报网满足给定要求,或者告诉情报机构这样的情报网是不存在的。Solution\mathrm{Solution}Solution这道题aaa如果到bbb的情况一定原创 2020-06-08 14:51:45 · 384 阅读 · 0 评论 -
『毒瘤算法系列12』最大流(边双连通分量·哈希)
Problem\mathrm{Problem}Problem给定一张nnn个点、mmm条边的无向图,点从111开始编号,保证所有点的度数都不超过333。现在假定每条边的容量都为111,请你求出任意两点间的最大流,最后只要输出所有点对(i,ji,ji,j)(i<ji<ji<j)间最大流的和。Solution\mathrm{Solution}Solution对于这道题目,突破口便在于任意点的度数不超过333.最大流的定义:两点间最多能流过多少条路径。最小割的定义:最少割几条边能够使原创 2020-06-08 14:38:38 · 249 阅读 · 0 评论 -
『毒瘤算法系列11』二分图(二分图匹配·强连通分量)
Problem\mathrm{Problem}Problem给定一个两侧各有nnn和mmm个点的二分图(保证n≤mn≤mn≤m),对于每条边,你需要判断原图是否存在一个大小为nnn,且包含了这条边的匹配。Solution\mathrm{Solution}Solution首先我们需要进行二分图匹配,若匹配<n<n<n时直接判定无解。我们首先思考一下在n=mn=mn=m时存在匹配的情况:右边的每一个点都能在左边找到一个匹配。左边的每一个点如果需要通过通非匹配边再找到一组合法解的原创 2020-05-31 08:19:54 · 676 阅读 · 0 评论 -
『素瘤算法系列10』魔法石(tarjan·边双连通分量)
Problem\mathrm{Problem}Problem幻象群岛是由nnn个孤立的岛屿构成。岛屿之间有一些残破的石桥,而桥心的石墩上,就有可能镶嵌着上古魔法石。约翰尼可以通过这些石桥,从一座岛跑到另一座岛,如果岛上恰好有魔法石,他就可以顺便收集。但是由于这些石桥实在是太残破了,约翰尼经过之后,石桥就会崩塌,不能再次通过。(由于约翰尼踩过的部分很快就会崩塌,所以他也不能先跑到桥心,然后原路返回)。约翰尼现在处在岛a,而岛b上则有一个传送门,只有在那里,约翰尼才能安全地离开幻象群岛。约翰尼想知道,他能顺原创 2020-05-29 21:12:24 · 435 阅读 · 1 评论 -
『毒瘤算法系列9』[JLOI2015]管道连接(斯坦纳树的应用)
Problem\mathrm{Problem}Problem小铭铭最近进入了某情报部门,该部门正在被如何建立安全的通道连接困扰。该部门有 nnn 个情报站,用 111 到 nnn 的整数编号。给出 mmm 对情报站 uiu_iui;viv_ivi 和费用 wiw_iwi,表示情报站 uiu_iui 和 viv_ivi 之间可以花费 wiw_iwi 单位资源建立通道。如果一个情报站经过若干个建立好的通道可以到达另外一个情报站,那么这两个情报站就建立了通道连接。形式化地,若 uiu_iui 和原创 2020-05-25 21:11:56 · 251 阅读 · 0 评论 -
『毒瘤算法系列8』构造序列(线段树优化建图·拓扑DP)
Problem\mathrm{Problem}Problem给定一个长度为nnn的正整数序列aaa,每个数都在111到10910^9109范围内,告诉你其中sss个数,并给出mmm条信息,每条信息包含三个数l,r,kl,r,kl,r,k以及接下来kkk个正整数,表示a[l],a[l+1],…,a[r−1],a[r]a[l],a[l+1],…,a[r-1],a[r]a[l],a[l+1],…,a[r−1],a[r]里这kkk个数中的任意一个都比任意一个剩下的r−l+1−kr-l+1-kr−l+1−k个数大(原创 2020-05-24 18:56:36 · 210 阅读 · 0 评论 -
『毒瘤算法系列7』魔棒(二分答案·差分约束)
Problem\mathrm{Problem}Problem有一个英雄,初始生命值是hphphp(生命值无上限),在接下来的nnn秒内,每秒会受到一次伤害,第i秒受到的伤害值为a[i]a[i]a[i]。这个英雄有一个道具“魔杖”,魔杖的初始能量为000,每受到一次伤害,积攒一点能量。在英雄受到伤害后,可以立即释放魔棒中的能量,恢复15×15×15×[能量点数]的生命值,且魔棒的点数清零。释放能量有施法间隔cdcdcd(cdcdcd是正整数),即相邻的两次释放的时间间隔至少有cdcdcd秒。任何时刻当hp≤原创 2020-05-18 20:32:31 · 399 阅读 · 0 评论 -
『毒瘤算法系列5』最小边权和(Bellman-ford式DP)
Problem\mathrm{Problem}Problem有一张nnn个点mmm条边的有向图,每条边有一个互不相同的边权www.有qqq个询问,要求你从点aaa经过不超过ccc条边到点bbb,要求经过的边权不下降且和尽量小,求出满足条件的最小的边权和.如果没有合法方案则输出−1-1−1。Solution\mathrm{Solution}Solution对于这道题,我们可以直接序列出询问(a,b,c)(a,b,c)(a,b,c)的答案f(a,b,c)f(a,b,c)f(a,b,c)。如果我们不考原创 2020-05-18 14:30:22 · 256 阅读 · 0 评论 -
『毒瘤算法系列3』负环(倍增Floyed)
Problem\mathrm{Problem}Problem给定一张边带权的无向图GGG,请你找出一个点数最少的环,使得环上的边权和为负数。保证图中不存在重边和自环。Solution\mathrm{Solution}Solution这道题其实最容易想到的时二分,我们去限制边的长度,判断是否存在小于等于这个边权的负环。但是这么考虑我们实现最后的判断,我们可以使用倍增来限制边权的长度。对于每一次的倍增,我们假设需要判定是否存在边权小于等于2i2^i2i的环,那么我们类比树上倍增的算法,可以大致得到以下算原创 2020-05-11 13:51:41 · 357 阅读 · 0 评论 -
『毒瘤算法系列2』次短路计数(最短路算法)
Problem\mathrm{Problem}Problem给定一张包含nnn个点、mmm条边的有向图,并且给定起始点sss和终点ttt,求从sss到ttt的最短路线和比最短路线多一个单位距离的路线的总方案数。(两条路线A、BA、BA、B不同当且仅当存在一条边 ∈A∈A∈A且∉B∉B∈/B)。Solution\mathrm{Solution}Solution这道题我们可以转化为求解最短路和次短路(dis1dis_1dis1和dis2dis_2dis2分别表示最短路和次短路)。当dis1+1原创 2020-05-11 10:51:39 · 288 阅读 · 0 评论 -
『毒瘤算法系列1』公交旅行(最短路建模)
Problem\mathrm{Problem}Problem在这个城市中有nnn个站台和mmm条公交线路,第iii条公交线路由tit_iti个站台组成,记为 si,1,si,2,…,si,tis_i,1, s_i,2,…,s_i,t_isi,1,si,2,…,si,ti。在000时刻,第iii辆公交车会处在si,1s_i,1si,1站台,之后每个时刻公交都会到达路线中的下一个站台。当公交车到达终点站后,它下一个时刻将会回到出发的站台,注意一个站台可能在一条线路中出现多次,但不会相邻。在000原创 2020-05-11 08:05:38 · 500 阅读 · 0 评论