最短路
ToheartZhang
这个作者很懒,什么都没留下…
展开
-
CODEVS 1041 Car的旅行路线
//注意矩形建图 #include<cstdio> #include<cstring> #include<cmath> #include<iostream> using namespace std; const int inf = 0x3f3f3f3f; double edge[440][440], x[440], y[440], ans, ti, t; int tot, s, A, B, bel原创 2017-04-17 20:53:26 · 348 阅读 · 0 评论 -
暑末 Day2 T1 Azuki has to work
//考试的时候把终点当成了n... //如果需要在城市群 a 与城市群 b 之间连一条长度为 c 的无向边,则我们连长度为 c 的有向边 outa → inb 和 outb → ina.容易发现这样建出的图和原图中城市互相可达的情况是等价的 // #include <bits/stdc++.h> #define debug(x) std::cerr << #x" = " << (x) << std原创 2017-08-29 17:11:16 · 398 阅读 · 0 评论 -
CodeVS 1242 布局
//差分约束系统 //以x-y <= k为例,等价于x <= k+y,相当于x和y之间的连边最大权值为k,然后跑最短路即知最大解。 //好久不做CodeVS了,洛谷大法好! #include<bits/stdc++.h> using namespace std; const int inf = 0x3f3f3f3f; queue<int> q; int n, m1, m2, tot; bool f原创 2017-08-24 10:46:16 · 288 阅读 · 0 评论 -
洛谷 1875 佳佳的魔法药水
//此题像游戏里的装备合成树。类似于树形结构,但又存在环。所以不能用树形DP,考虑贪心的思想,每次用一个当前最小代价得到药水(一定是当前最优价格)+已经确定药水价格的药水来合成另一个药水,更新他的价格,这就是Dijkstra的思想。 #include<bits/stdc++.h> using namespace std; const int inf = 0x3f3f3f3f; const int原创 2017-08-17 16:16:47 · 373 阅读 · 0 评论 -
洛谷 1396 营救
//最小瓶颈路,用SPFA。 #include<bits/stdc++.h> using namespace std; const int maxn = 100010; int n, m, s, t, tot; int d[maxn], st[maxn];//d[]表示到该点路上最大值的最小值。 bool vis[maxn]; queue<int> q; struct node{ in原创 2017-08-16 17:21:48 · 398 阅读 · 0 评论 -
NOIP2013 Day1 T3 货车运输
估计30分实际只有25分的SPFA求瓶颈路暴力#include<cstdio> #include<cstring> #include<queue> #include<iostream> using namespace std; const int inf = 100001; const int maxn = 10010; const int maxm = 50050; int n, m, q, to原创 2017-07-21 20:26:49 · 489 阅读 · 0 评论 -
CODEVS 1020 孪生蜘蛛
//注意理解最坏情况的意义,floyd的初始化要注意i == j时!!!! #include<cstdio> #include<cstring> #include<iostream> using namespace std; const int maxn = 110; const int inf = 0x3f3f3f3f; int n; int map[maxn][maxn], got[maxn]原创 2017-05-31 11:42:38 · 312 阅读 · 0 评论 -
CODEVS 1021 玛丽卡
//出队的点需要重置v,可能再入队松弛其他的点。 //还要注意如何记录路径,本题记录边比较方便,刘汝佳也讲了如何记录点,尤其注意追溯边的那个循环怎么写。 #include<bits/stdc++.h> using namespace std; const int maxn = 1010; const int inf = 0x3f3f3f3f; int tot, n, m, cnt; struct原创 2017-05-05 20:43:04 · 644 阅读 · 0 评论 -
【分数规划总结】周测图论1 环 & CODEVS 1183 泥泞的道路
(s1+s2+…+sn)/(t1+t2+…+tn) = ans 即s1-t1*ans+s2-t2*ans+…+sn-tn*ans = 0 当需求比值解时考虑分数规划,二分答案求解。根据题目要求向上二分或向下二分,利用spfa判正/负环。 环 定义环的伸展度为这个环上所有边的距离之和与环上边的总数的比值,给出一个n个节点,m条边的有向图,每条边有一个属性距离,求图中伸展度最小的有原创 2017-05-24 14:09:36 · 324 阅读 · 0 评论 -
1.2 最短路算法的多用
1.2.1 分算法之Dijkstra算法本质是贪心,一些不像图论的可贪心的让求关于单源的解的题也能用哦。不能解决负权边。 Eg1.佳佳的魔法药水 一道看起来和最短路没啥关系的题,但是可以贪心啊,每次找一个值最小但却没有确定最小值的药水,将其标记为最小值,然后枚举能与此药水合成药水的药水,用找到的药水与配对的药水更新合成药水的最小值,和Dij相似。 #include<bits/stdc++.h原创 2017-11-06 18:31:46 · 343 阅读 · 0 评论