随笔分类 -  最短路径

摘要:【题目链接】 点击打开链接 【算法】 差分约束系统,SPFA判负环 【代码】 阅读全文
posted @ 2018-06-15 20:39 evenbao 阅读(159) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 差分约束系统 【代码】 阅读全文
posted @ 2018-06-15 20:11 evenbao 阅读(134) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 令sum(n)表示区间[1,n]中选了几个点 那么,显然有以下不等式 : 1. sum(n)- sum(n - 1) >= 0 2. sum(n) - sum(n - 1) <= 1 3. sum(bi) - sum(ai-1) >= ci 那么,差分约束系统是 阅读全文
posted @ 2018-06-14 22:33 evenbao 阅读(137) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 朴素算法,就是跑N-1遍floyd 而满分算法就是通过矩阵快速幂加速这个过程 【代码】 注意要离散一下 阅读全文
posted @ 2018-05-23 22:43 evenbao 阅读(168) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 dist[i][j][k]表示当前走到(i,j),走的步数除以3的余数为k的最小花费 spfa即可 【代码】 阅读全文
posted @ 2018-05-19 19:24 evenbao 阅读(169) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 dist[i][j]表示到达i号城市,使用了j次魔法,所用时间的最小值 那么,dist[i][j]可以转移到dist[k][j+1]和dist[k][j],一边spfa一边dp,即可 【代码】 阅读全文
posted @ 2018-05-19 11:40 evenbao 阅读(132) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 首先,跑floyd,计算最短路和最短路径数 然后,计算答案,枚举k,s,t,若dist[s][k] + dist[k][t] = dist[s][t], 那么,点对(s,t)对答案k的”贡献“就是c[s][k]*c[k][t]/c[s][t] 【代码】 阅读全文
posted @ 2018-05-19 10:55 evenbao 阅读(143) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 floyd求最小环 输出路径的方法如下,对于i到j的最短路,我们记pre[i][j]表示j的上一步 在进行松弛操作的时候更新pre即可 【代码】 阅读全文
posted @ 2018-05-13 23:04 evenbao 阅读(389) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 SPFA + SLF / LLL 优化 【代码】 阅读全文
posted @ 2018-05-13 12:12 evenbao 阅读(157) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 令cost(i,j) = 第i天到第j天走相同的路线,路线长度的最小值 那么,只需筛选出第i天到第j天可以装卸货物的码头,然后将这些码头之间连边,跑弗洛伊德(或其它最短路算法),即可 然后,我们用f[i]表示前i天,总成本最小是多少,显然有 : f[i] = m 阅读全文
posted @ 2018-05-11 21:10 evenbao 阅读(149) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 弗洛伊德求最小环模板 我们知道,在一个环上,一定有一个有且仅有一个编号最大的点,设这个点为k,起点为i,终点为j,那么 mincost = dist[i][j] + cost[j][k] + cost[k][i] (dist[i][j]为i到j的最短路) 所以只 阅读全文
posted @ 2018-05-09 19:31 evenbao 阅读(131) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 最短路 【代码】 阅读全文
posted @ 2018-04-28 22:00 evenbao 阅读(246) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 dijkstra 【代码】 阅读全文
posted @ 2018-04-01 19:36 evenbao 阅读(157) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 按x轴排序,将相邻点连边 按y轴排序,将相邻点连边 然后对这个图跑最短路就可以了,笔者用的是dijkstra算法 【代码】 阅读全文
posted @ 2018-03-24 22:25 evenbao 阅读(108) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 最短路 【代码】 阅读全文
posted @ 2018-03-24 09:58 evenbao 阅读(141) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 最短路,注意不能用dijkstra,要用SPFA 【代码】 阅读全文
posted @ 2018-03-24 09:55 evenbao 阅读(101) 评论(0) 推荐(0)
摘要:【比赛链接】 点击打开链接 【题解】 Problem A Word Correction【字符串】 不用多说了吧,字符串的基本操作 Problem B Run for your prize【贪心】 我们可以将这个数轴一分为二,小于等于500000的由第一个人领,否则由第二个人领 Problem C 阅读全文
posted @ 2018-02-19 18:38 evenbao 阅读(129) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 概率DP 先跑一遍floyed,求出每个教室之间的最短路径,存在数组dist[][]中,时间复杂度O(V^3) 设计状态,f[i][j][k]表示当前选到第i个教室,已经选了j个教室,当前这个教室选不选(0..1) 那么,状态转移方程是什么呢? 假设当前选到第i 阅读全文
posted @ 2018-02-15 14:37 evenbao 阅读(196) 评论(0) 推荐(0)
摘要:【题目链接】 点击打开链接 【算法】 状压DP f[i][S]表示走的最后一步在i,状态为S 于是我们可以用最短路径 + 状压DP解决此题,由于不存在负边,所以可以用dijkstra+堆优化 【代码】 阅读全文
posted @ 2018-02-12 11:52 evenbao 阅读(145) 评论(0) 推荐(0)
摘要:题目链接 : 【POJ】点击打开链接 【caioj】点击打开链接 算法 : 1:跑一遍弗洛伊德,求出点与点之间的最短路径 2:二分答案,二分”最大值最小“ 3.1:建边,将原点与每头奶牛连边,流量为1,记dist[i][j]为i到j的最短路径,若dist[i][j]<=mid (K+1<=i<=K+ 阅读全文
posted @ 2018-02-02 13:03 evenbao 阅读(261) 评论(0) 推荐(0)