
spfa
SC.ldxcaicai
我很菜=_=
展开
-
2018.09.09 poj2949Word Rings(01分数规划+spfa判环)
传送门 这题要先巧妙的转化一下。 对于每个字符串,我们把头尾的两个小字符串对应的点连边,边权是这个字符串的长度。 这样最多会出现26*26个点。 这个时候就只用求出边权和跟边数的最大比值了。 这个显然01分数规划+spfa判环解决。 注意用dfs版的spfa要快一些。 代码:#include<iostream>#include<cstdio>#in...原创 2018-09-09 14:10:35 · 226 阅读 · 0 评论 -
2018.09.12 poj3621Sightseeing Cows(01分数规划+spfa判环)
传送门 01分数规划板题啊。 发现就是一个最优比率环。 这个直接二分+spfa判负环就行了。 代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define N 1005#define...原创 2018-09-12 20:15:37 · 176 阅读 · 0 评论 -
2018.09.24 bzoj1486: [HNOI2009]最小圈(01分数规划+spfa判负环)
传送门答案只保留了6位小数WA了两次233。这就是一个简单的01分数规划。直接二分答案,根据图中有没有负环存在进行调整。注意二分边界。另外dfs版spfa判负环真心快很多。代码:#include<bits/stdc++.h>#define N 3005#define M 10005using namespace std;inline int read(){ in...原创 2018-09-24 23:59:20 · 145 阅读 · 0 评论 -
2018.09.15 vijos1053Easy sssp(最短路)
传送门 貌似可以最短路时同时判定负环啊。 但我不想这样做。 于是写了一个dfs版的判环,bfs版的求最短路。 代码:#include<iostream>#include<cctype>#include<cstdio>#include<cstring>#include<queue>#define N 1005#d...原创 2018-09-15 14:10:33 · 223 阅读 · 0 评论 -
bzoj3875: [Ahoi2014&Jsoi2014]骑士游戏(spfa+dp)
传送门题意简述:nnn个怪物,对于编号为iii的怪物可以选择用aia_iai代价将其分裂成另外的bib_ibi个怪物或者用cic_ici代价直接消灭它,现在问消灭编号为1的怪物用的最小代价。思路:考虑dpdpdp,消灭iii号怪物的代价fi=min{ci,ai∑fv},v指分裂的怪物f_i=min\{c_i,a_i\sum f_v\},v指分裂的怪物fi=min{ci,ai∑fv...原创 2019-01-22 11:57:51 · 267 阅读 · 0 评论 -
SCU4444 Travel(最短路+bfs)
传送门题意简述:给出一张nnn个点的完全图,有mmm条边边权为aaa其余点边权为bbb,问从111到nnn的最短路。思路:分类讨论一波即可。(1,n)(1,n)(1,n)的边权为aaa,那么只用求从111到nnn不经过给出边的最短路,这个用set+bfsset+bfsset+bfs解决。(1,n)(1,n)(1,n)的边权为bbb,那么只用求从111到nnn经过给出边的最短路,上spf...原创 2019-01-22 18:59:44 · 324 阅读 · 0 评论 -
bzoj3597: [Scoi2014]方伯伯运椰子(01分数规划)
传送门题意咕咕咕有点麻烦不想写思路:考虑加了多少一定要压缩多少,这样可以改造边。于是可以通过分数规划+spfaspfaspfa解决。代码:#include<bits/stdc++.h>#define ri register int#define fi first#define se secondusing namespace std;const int rlen...原创 2019-03-28 21:39:27 · 137 阅读 · 0 评论