tips: 1.判断是否有负权回路 2.Bellman-ford算法 3.对每条边进行n-1次松弛 4.啊哈算法上讲的比较好,但是稍微有点错误 5.c++里的构造函数 //一直wa的原因是......每次结束后vector没有清空 //刚开始还以为是inf定义的不够大 //spfa做法可参考http ...
分类:
其他好文 时间:
2018-08-08 00:00:41
阅读次数:
211
设s为前缀和,首先显然的条件是$$ s_{bi} s_{ai 1} =c $$,然后隐含的是$$ s_i s_{i 1} =0 s_i s_{i 1} include include using namespace std; const int N=500005,inf=1e9; int n,s=i ...
分类:
其他好文 时间:
2018-08-05 20:27:04
阅读次数:
102
题目链接:http://poj.org/problem?id=3621 Sightseeing Cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11526 Accepted: 3930 Description Farme ...
分类:
其他好文 时间:
2018-08-05 16:51:14
阅读次数:
203
图论专题训练 已完成 [x] A [x] B [x] C A + 题意: 一个国家里有很多个城市,某件物品在所有城市的价格都不同,你可以在一个城市买,另一个城市卖出来获得利益,但是只能进行一次买卖。然后要从1走到n,1到n有单向,也有双向的。 + 题解:将图分层。邻接表,spfa求出最长路(最大权值 ...
分类:
其他好文 时间:
2018-08-03 14:26:30
阅读次数:
182
在判断环路时,如果没有源点,则建立超级源s,从s出发与所有其它点相连,权值为0。 那么从s出发进行spfa就相当于把所有的点加入队列中,且标记,且d[i] = 0; ...
分类:
其他好文 时间:
2018-08-03 10:42:05
阅读次数:
134
~~为什么早年的题总是从0开始标号啊……又zz了一次WA~~ 分层图的题只有这一个套路吧,建分层图,然后优化时间是分层跑spfa然后层与层之间单独跑即可 cpp include include include include using namespace std; const int N=5000 ...
分类:
其他好文 时间:
2018-08-02 01:59:31
阅读次数:
132
"传送门" 分层图$SPFA$……听起来好高级的样子……嗯,所以我选分层图$\rm{dijkstra}$ 这题好像是会卡$SPFA$,要加一个玄学$SLF$优化才可以…… 所以还是用堆优化$\rm{dijkstra}$吧,多好 以上全是瞎扯,但卡$SPFA$是 真的 用$\tt{dis[i][j]} ...
分类:
其他好文 时间:
2018-08-01 20:51:10
阅读次数:
187
0-1BFS问题是指最短路问题中,边权只有 0 和 1 的特殊情况。写法类似 SPFA + SLF(Small Label First) 优化。需要一个 deque 。把权值 0 的边扩展到的点放到队首,权值 1 的边扩展到的点放到队尾。 这好像是个挺重要的知识点,有很多可以用 0-1BFS 解决的 ...
分类:
其他好文 时间:
2018-08-01 20:50:15
阅读次数:
228
正常spfa中加入time数组,循环判断一个点是否入队并更新了n次以上注意是 > n!!其余的没有什么问题 扩展的还有,寻找所有负环上的点,这个可以在spfa中time 发现负环的时候,对那个点进行dfs操作,找到所有的负环上的点即可 一下负权回路代码以poj3259为例(poj又挂了,暂时还没发交 ...
分类:
其他好文 时间:
2018-08-01 11:55:30
阅读次数:
163
魔法森林 bzoj-3669 Noi-2014 题目大意:说不明白题意系列++……题目链接 注释:略。 想法:如果只有1个参量的话spfa、dij什么的都上来了。 两个参量的话我们考虑,想将所有的边按照a排序。 如果两个点:它们之间有两条路径,有一条比另一条劣。 那么我们完全可以将另一条弄掉。 排序 ...
分类:
其他好文 时间:
2018-07-31 21:52:27
阅读次数:
179