
最短路题目
凌阡陌
随心而为,我自逍遥
展开
-
hdu2112 最短路+map
#include #include #include #include #define inf 999999using namespace std;int my_map[200][200];int s[200];int dist[200];void dij(int v,int n){ int i,j,min,dir; for(i=1;i<=n;i++)原创 2012-02-26 17:59:45 · 253 阅读 · 0 评论 -
hdu1217Floyd最短路
题意:有n个国家,每两个国家之间都有一定的汇率,问怎么样转换才能赚钱。以国家为顶点,汇率为边长,构造一个图,如果从自身出发回到自身的路径乘积和大于1,则说明可以赚钱。#include #include #include #include using namespace std;char ch[40],sh[40];double dis[55][55];void Floyd(i原创 2012-08-24 16:41:28 · 453 阅读 · 0 评论 -
hdu1384差分约束系统
差分约束系统:有一组或多组Xj-Xi题意:构造一个集合,这个集合内的数字满足所给的n个条件,每个条件都是指在[a,b]内至少有c个数在集合内。为了构造不等式,我们假设Ti表示[0,i-1]区间内,要选多少个数,这样就形成了三个约束条件。Tb+1-Ta>=C, 0=#include #include #include using namespace std;const int原创 2012-09-03 21:46:31 · 321 阅读 · 0 评论 -
hdu1142spfa+记忆化搜索
题意:起点是1,终点是2,只能从离终点远的点走到离终点近的点,问从起点到终点一共有多少种走法。分析:利用spfa求得以2为起点所有点的距离,然后利用记忆化搜索求得路径的个数。#include #include #include using namespace std;const int oo=1e9;const int mm=5000;const int mn=510000;原创 2012-08-24 13:58:25 · 404 阅读 · 0 评论 -
hdu1385Floyd 记忆路径
题意:求从i到j的最短路径长度,以及字典序最小的路径。#include #include using namespace std;int a[110][110],c[110][110];int b[110];int find(int from,int to){ while(c[from][to]!=to) { printf("-->%d",c[fro原创 2012-08-24 15:06:00 · 322 阅读 · 0 评论 -
hdu1531差分约束系统
题意:求一组不等式是否有解,这些不等式要么是Xa+X(a+1)+.......+XbXa+X(a+1)+.......+Xb>k令Ti=X(0)+....X(i-1),则不等式变为Tb-T(a-1)注意的是:=是求最长路#include #include #include using namespace std;const int oo=1e8;const int mn=12原创 2012-09-04 15:02:18 · 552 阅读 · 0 评论 -
hdu3666差分约束系统
题意:一个n*m的矩阵,两个数组a,b。矩阵中的每个元素L这是一个差分约束的问题,将不等式变为Xij*Ai-U*Bj#include #include #include #include using namespace std;const int oo=1e8;const int mn=161000;const int mm=961000;int edge,n,m;dou原创 2012-09-05 16:30:23 · 799 阅读 · 0 评论 -
hdu3873带节点保护的最短路
题意:有一个图,如果有其他顶点保护着它,则它不能到达。思路:到达某一点的时间一定是起点到达的最短路和它的保护限制的最大值。#include #include #include using namespace std;const long long oo=99999999999999LL;const int mn=3300;const int mm=77000;int ver[原创 2012-09-05 20:55:23 · 358 阅读 · 0 评论 -
hdu1224
题意:求一幅图中从1再回到1的过程中,经过的点最大的路径。#include #include #include using namespace std;int mapp[120][120],point[120];int step[220],ans[220];int main(){ int t,m,n,i,j,max,k,a,b,cas=0; scanf("%d原创 2012-08-28 21:10:05 · 322 阅读 · 0 评论 -
hdu3986枚举+最短路
就是一道求次短路的题目。#include #include #include using namespace std;const int oo=1e8;const int mm=1100;const int mn=100010;int ver[mn],next[mn];int head[mm],dis[mm],p[mm],q[mn],d[mm][mm][2];bool vis原创 2012-09-06 19:57:11 · 348 阅读 · 0 评论 -
poj1062最短路
http://hi.baidu.com/aekdycoin/item/33b1f1e80efc8ce7fa42baa5这个博客写的思路真的很好。题目的本质是有限制条件的最短路,既最短路路径上的所有点的差的绝对值不能大于M 做法是1.新增一个节点Vn,对于所有的物品,建边Vn->Vi(02.对于所有的附属物品,建边Vj->Vi(j是i的附属物品)3.枚举点Vi(0原创 2012-09-02 16:19:46 · 356 阅读 · 0 评论 -
hdu4396 spfa有限制的最短路
利用二维的spfa#include #include using namespace std;const int oo=1e9;const int mm=5555;const int mn=200020;int ver[mn],next[mn],cost[mn];int head[mm],qx[mn],qy[mn],dis[mm][55];bool vis[mm][55];i原创 2012-08-24 10:36:09 · 3033 阅读 · 0 评论 -
hdu1245最短路+控制精度
这个题做的意义不大,找错得找好长时间。我的想法是以原点为0,边界能够到达的点为n+1,n+2.......然后求从0到n+1.n+2......的最小值#include #include #include #include #include using namespace std;const double oo=1e9*1.0;const int mn=2500;const原创 2012-09-02 09:22:30 · 440 阅读 · 0 评论 -
hdu1874最短路
#include #include #define inf 99999999using namespace std;int my_map[250][250];int dist[250];int s[250];void dij(int n,int v){ int i,j,min,dir; for(i=0;i<n;i++) { s[i]=0;原创 2012-02-27 19:08:02 · 221 阅读 · 0 评论 -
hdu_1596最短路小变形
#include #include #include using namespace std;double my_map[1010][1010];double dist[1010];int s[1010];void dij(int n,int v){ int i,j,dir; double max;//注意max的数据类型 for(i=1;i<=n;i+原创 2012-02-28 19:56:17 · 286 阅读 · 0 评论 -
hdu2680最短路
#include #include #define inf 999999using namespace std;int my_map[1010][1010];int dist[1010];int s[1010];void dij(int n,int v){ int i,j,dir,min; for(i=0;i<=n;i++) { s[i]=原创 2012-02-29 15:36:22 · 328 阅读 · 0 评论 -
hdu_1690
#includeusing namespace std;#define inf 0x7f7f7f7f7f7f7f7fLLtypedef __int64 LL;LL mat[105][105];LL cor[105];LL L1,L2,L3,L4,C1,C2,C3,C4; LL change(LL x){ if(x<0) x*=-1; if(x>0&&x<=L1)原创 2012-03-01 20:25:40 · 279 阅读 · 0 评论 -
hdu2066最短路+最优队列
#include #include #include #include #include using namespace std;#define MAXN 1010#define INF 0x3fffffffint map[MAXN][MAXN];int dis[MAXN];bool hash[MAXN];struct Dij{ int id; int di转载 2012-03-03 19:24:31 · 332 阅读 · 0 评论 -
poj1125最短路模板
简单的模板应用,就是求图中各个点中,每个点到其余各点最大距离的最小值。#include #include #include using namespace std;#define maxn 110#define maxint 999999int mapp[maxn][maxn];//the map of the problemint ans[maxn];//the longest d原创 2012-04-23 19:14:47 · 303 阅读 · 0 评论 -
poj2253
挺简单的一个题,简单的dijsktra变形,只要将更新时的方程变一下就可以了。#include #include #include #include using namespace std;#define maxint 99999999struct Node{ double x,y;}node[210];int sx,sy,ex,ey,n;double mapp[2原创 2012-07-11 10:08:41 · 196 阅读 · 0 评论 -
hdu4360 spfa
题意:有一个网络,每条边分别被标记上‘L’、‘O’、‘V’、‘E’四个字母,从起点到终点,只能按照LOVELOVE.....的走。求在保证LOVE的情况下的最短路。利用spfa,将每条路标记上四个状态,求最短路即可。#include #include #include using namespace std;const int mm=5555;const int mn=99999原创 2012-08-15 15:06:41 · 295 阅读 · 0 评论 -
hdu4370 0 or 1 最短路
Problem DescriptionGiven a n*n matrix Cij (1ij (1Besides,Xij meets the following conditions:1.X12+X13+...X1n=12.X1n+X2n+...Xn-1n=13.for each i (1ki (1ij (1For example, if n=4,we ca原创 2012-08-20 16:12:30 · 355 阅读 · 0 评论 -
hdu4284搜索+Floyd
题目:给出一些城市,从1出发,旅游一圈回到1,由于花费可能不够,所以选择一些城市打工,打工之前需要花费d买一个证,工资为c。选中的城市必须去工作一次,而且只能工作一次,问能不能完成旅行#include #include #include using namespace std;const int oo=1e8;int g[110][110];int a[110],c[110],原创 2012-09-12 19:52:10 · 303 阅读 · 0 评论