SPFA
Cyhlnj
这个作者很懒,什么都没留下…
展开
-
[APIO2009]抢掠计划
题面:Description Siruseri城中的道路都是单向的。不同的道路由路口连接。按照法律的规定,在每个路口都设立了一个Siruseri银行的ATM取款机。令人奇怪的是,Siruseri的酒吧也都设在路口,虽然并不是每个路口都设有酒吧。 Banditji计划实施Siruseri有史以来最惊天动地的ATM抢劫。他将从市中心出发,沿着单向道路行驶,抢劫所有他途径的ATM机,最终他将在一个酒吧庆原创 2017-07-16 11:24:22 · 528 阅读 · 0 评论 -
Bzoj3597: [Scoi2014]方伯伯运椰子
题面传送门Sol消圈定理:如果一个费用流网络的残量网络有负环,那么这个费用流不优 于是这个题就可以建出残量网络,然后分数规划跑负环了# include <bits/stdc++.h># define IL inline# define RG register# define Fill(a, b) memset(a, b, sizeof(a))using...原创 2018-05-30 22:08:53 · 189 阅读 · 0 评论 -
分数规划(Bzoj1486: [HNOI2009]最小圈)
题面传送门分数规划分数规划有什么用? 可以把带分数的最优性求解式化成不带除发的运算 假设求max{ab,b&gt;0ab,b&gt;0\frac{a}{b},b>0} 二分一个权值kkk 令ab≤kab≤k\frac{a}{b}\le k那么a−k∗b≤0a−k∗b≤0a-k*b\le 0 如果得出来a−k∗ba−k∗ba-k*b的最大值大于000,那么kkk可以变大 ...原创 2018-05-30 22:05:36 · 210 阅读 · 0 评论 -
Luogu1261: 服务器储存信息问题
题面传送门Sol我们可以考虑每种rankrankrank的点uuu会被哪些点vvv感兴趣 如果dis[u][v]<dis[u][v]<dis[u][v]rankrankrank大于rank[u]rank[u]rank[u]的点到vvv的距离 那么vvv一定对uuu感兴趣我们可以先101010遍最短路,处理出每种rankrankrank的点到所有点的最短路 计f...原创 2018-04-03 09:25:58 · 334 阅读 · 0 评论 -
Bzoj2118: 墨墨的等式
题面传送门Sol和这道题很像Luogu跳楼机 找到最小的那个a[i]a[i]a[i]设为mnmnmn SPFASPFASPFA算出得到每个值为iii的是否能凑出来,设为f[i]f[i]f[i]实际上iii变成i%mni%mni\%mn,所有的这一类都可以通过mnmnmn这个桥梁得到 那么直接求到i%mni%mni\%mn就好了最后统计[0,Bmax][0,Bmax][0,...原创 2018-04-02 14:57:23 · 248 阅读 · 0 评论 -
Luogu3403: 跳楼机
题面传送门Sol有一个显然的想法 处理出y,zy,zy, z能凑出的高度 然后这些高度凑一些xxx就可以得到其它的高度那么可以把这些y,zy,zy, z凑出的高度对xxx取模,其它的用xxx来填补 所以设f[i]f[i]f[i]表示y,zy,zy, z凑出高度%x%x\%x为iii需要的最低高度 那么答案就是 ∑i=0x−1⌊(n−f[i])x⌋+1∑i=0x−1⌊(...原创 2018-04-02 14:24:12 · 316 阅读 · 0 评论 -
Bzoj2007: [Noi2010]海拔
题面传送门Sol显然是求这样一个东西 绿色的线为分割线,左上海拔为000,右下为111 分隔线经过的边就是贡献的答案 那么这就是平面图最小割,转成对偶图求最短路就好了SPFASPFASPFA真心慢,以后还是跑DijstraDijstraDijstra# include <bits/stdc++.h># define RG register# def...原创 2018-03-31 20:26:22 · 174 阅读 · 0 评论 -
NOIP2017:逛公园
Sol发现NOIP2017NOIP2017NOIP2017还没AKAKAK??? 赶紧改考场上明明打出了DPDPDP,没时间了,没判环,重点是没初始化数组,爆000 TATTATTAT先最短路,然后f[i][j]f[i][j]f[i][j]表示到iii时,比最短路大jjj的方案 大力记搜就好了 判环就记录一下当前转移的是否在栈中就没了明明这么简单,可我就是与ACACAC擦肩...原创 2018-03-29 20:25:52 · 921 阅读 · 1 评论 -
Bzoj4016: [FJOI2014]最短路径树问题
题面传送门Sol先SPFASPFASPFA求出单源最短路,BfsBfsBfs建出树,字典序可以用堆解决 然后就是点分治的一眼题 开桶记录到当前根经过边长度相同的最长路,记录它的长度自己强行yyyyyy了一个这种类型的点分丑陋写法# include <bits/stdc++.h># define RG register# define IL inl...原创 2018-02-26 14:54:48 · 364 阅读 · 0 评论 -
平面图转对偶图(Bzoj1001:狼抓兔子)
如果只会用最小割做这道题那就太菜辣引入来自某学长 平面图:在平面上边不相交的图(边可以绕着画) 那么平面图的边与边就围成了许多个区域(这与你画图的方式有关) 定义对偶图:把相邻的两个区域连上边,形成的图 两个可能正确的东西:对偶图∈" role="presentation" style="position: relative;">∈∈\in平面图平面图的对偶图原创 2018-02-05 18:23:22 · 435 阅读 · 0 评论 -
汽车加油行驶问题
分层图,k只有10,每个k一层图 跑费用流,但容量为1,所以就是SPFA # include <bits/stdc++.h># define RG register# define IL inline# define ID(a, b, c) ((c) * N * N + (a - 1) * N + b)# define Fill(a, b) memset(a, b, sizeof(a原创 2018-01-03 15:22:07 · 729 阅读 · 0 评论 -
Marriage Match IV HDU - 3416
题意给你n个点,m条边,要求每条边只能走一次的最短路径的个数题解在我又WA又TLE还RE时,yyb大佬告诉我说要跑两遍SPFA,还说我写的一遍SPFA是错的,然而 啪啪打脸。。。 而且他的 比我跑得慢,2333 接下来讲一下方法 首先一遍SPFA(或dijkstra)从S跑一遍到所有点的最短路,重新建图时对于每对u, v 若 dis[u] + w[u][v] == dis[v] 则原创 2017-07-29 20:12:47 · 334 阅读 · 0 评论 -
UOJ#172. 【WC2016】论战捆竹竿
传送门首先这个题目显然就是先求出所有的 borderborderborder,问题转化成一个可行性背包的问题一个方法就是同余类最短路,裸跑 303030 分,加优化 505050 分首先有个性质borderborderborder 分成的等差数列的个数不超过 logloglog和回文树的性质的证明类似瞎画图一下就行了我们注意到可以一个一个等差数列的更新最短路要做到这个,必须能从之前的...原创 2019-01-15 09:22:52 · 437 阅读 · 0 评论