最短路径
softrice
这个作者很懒,什么都没留下…
展开
-
HDU 2112——HDU Today
最小路径的题目,地名的处理是把各个地名标记序号即可。需要注意的是这题是的公交起点站可到终点站,终点站也可到起点站。另外给出两个相同地点时,输出是0.#include#include#includeusing namespace std;#define INF 1000000int map[160][160],dis[160];bool que[160];char plac原创 2013-04-23 18:25:49 · 822 阅读 · 0 评论 -
poj 2983——Is the Information Reliable?
查分约束#include#include#include#includeusing namespace std;#define INF 10000001int n,m,cnt;int head[350001],v[350001],w[350001],next[350001];int dis[1005],vis[1005],output[1005];void add(int a原创 2013-07-20 00:46:22 · 862 阅读 · 0 评论 -
poj 3169——Layout
查分约束 #include#include#include#includeusing namespace std;#define INF 1000001int head[30000],v[30000],w[30000],next[30000];int dis[2000],vis[2000],output[2000];int cnt,n,l,d;void add(int a原创 2013-07-20 00:11:55 · 797 阅读 · 0 评论 -
poj 1201——Intervals
差分约束建图spfa求的最长路径 #include#include#include#includeusing namespace std;#define INF 100000int head[151000],v[151000],w[151000],next[151000];int dis[51000];bool vis[51000];int cnt,n,m;void原创 2013-07-19 21:25:10 · 852 阅读 · 0 评论 -
poj 2883——Points
差分约束#include#include#includeusing namespace std;#define INF 10000001#define esp 1int n,m;int head[2][30015],v[2][30015],next[2][30015];double w[2][30015];double dis[1005];int input[1505],o原创 2013-07-20 00:56:02 · 990 阅读 · 1 评论 -
poj 1716 ——Integer Intervals
差分约束#include#include#include#includeusing namespace std;#define INF 10000001int n,m;int head[30015],v[30015],w[30015],next[30015];int vis[10015],dis[10015];int cnt;void add(int a,int b,int原创 2013-07-19 23:46:14 · 825 阅读 · 0 评论 -
hdu 2544——最短路 (spfa)
2013暑期多校联合训练——80+高校,300+队伍,10000元奖金,敬请期待~最短路Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 20831 Accepted Submission(s): 891原创 2013-07-08 18:06:31 · 873 阅读 · 0 评论 -
HDU 1596——find the safest road
最小生成树dij算法就可解决。#include#include#includeusing namespace std;#define maxn 1005double map[maxn][maxn],dis[maxn];bool que[maxn];int main(){ int n,i,j; while(scanf("%d",&n)!=EOF) { for(i=1原创 2013-04-28 17:48:39 · 859 阅读 · 0 评论 -
HDU 2833——wukong
dijskra算法+搜索首先分别求出悟空和唐僧各自的最短路径,然后记忆化搜索。#include#include#includeusing namespace std;#define maxn 302#define INF 10001int map[maxn][maxn],dis1[maxn],dis2[maxn];int dp[maxn][maxn];void dij1(i原创 2013-04-28 21:18:09 · 1020 阅读 · 0 评论 -
Bellman-Ford算法
/** About: Bellman-Ford算法* Author: Tanky Woo* Blog: www.WuTianqi.com*/ #include using namespace std;const int maxnum = 100;const int maxint = 99999; // 边,typedef struct Edge{ int u,转载 2013-04-26 21:46:08 · 852 阅读 · 0 评论 -
HDU 1224——Free DIY Tour
弗洛伊德算法题意为从城市1到城市n+1,求经过的城市的有趣值之和最高的路线。并且旅游路线只能是序号小的城市到序号大的城市。#include#includeusing namespace std;#define maxn 105#define INF -100001int map[maxn][maxn],path[maxn][maxn],val[maxn];//path代表从i原创 2013-04-26 21:18:39 · 867 阅读 · 0 评论 -
HDU 1599 find—— the mincost route
题意可以理解为求有至少带3个节点的环的最小值。#include#include#includeusing namespace std;#define INF 100001int map[102][102],dis[102][102],num[102];int min(int a,int b){ return a<b?a:b;}int main(){ int n,m,原创 2013-04-24 22:45:08 · 851 阅读 · 0 评论 -
floyd求最小环
floyd求最小环1 定义:通常来说最小环是针对有向图而言从一个点出发,经过一条简单路径回到起点成为环.图的最小环就是所有环中长度最小的.2.怎样求最小环呢?1传统的解决方法(dijkstra): 任意一个环的权值,我们都可以看成两个有边相连的结点i、j的直接距离加上i、j间不包含边(边i->j)的最短路径。求最短路径我们第一个想到的就是D转载 2013-04-24 22:26:44 · 1153 阅读 · 0 评论 -
HDU 1595——find the longest of the shortest
dijcstra算法做法是在这个无向图中,先求出起点到终点的最短路径,并且标记出起点到终点所经过的节点,然后在采用枚举法,把其中的道路改变。求出其中的最大值即可。代码写的很难看,懒得改了。#include#include#includeusing namespace std;#define INF 100001int map[1003][1003],dis[1003],be[原创 2013-04-24 19:40:32 · 1139 阅读 · 1 评论 -
hdu 1217——Arbitrage
弗洛伊德算法,就是下面三重循环。 for(i=0;i<n;i++) for(j=0;j<n;j++) for(k=0;k<n;k++) if(map[j][i]*map[i][k]>map[j][k]) map[j][k]=map[j][i]*map[i][k];代码#include#include#includeusing nam原创 2013-04-24 13:51:24 · 941 阅读 · 0 评论 -
最短路径问题 hdu 3790
水题,不多说。#include#include#include#define INF 1000001using namespace std;int map[1002][1002][2],dis[1002],cost[1002];int que[1002];int main(){ int n,m,i,j,s,e,min,k; int a,b,c,d; while(scanf原创 2013-04-22 21:39:42 · 812 阅读 · 0 评论