
最短路+查分约束
文章平均质量分 55
秋天的风--
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
展开
-
poj 2449 Remmarguts' Date(第K短路 A*)
题意:大意是 有N个station 要求从s点到t点 的第k短路 (不过我看题意说的好像是从t到s 可能是出题人写错了)思路: 这是一道 经典的第k短路算法,只要你会就能过。PS:这也是我第一k短路题 学到了很多新的东西 因为没学过A* 算法 所以在网上找了好久,但讲了都不是清楚 解题报告也都不带注释的 这里我就附上详细的解题报告 也好给以后要学的人 一点帮助。从这题中还真的学到了转载 2015-05-06 18:54:55 · 660 阅读 · 0 评论 -
hdu 1384 查分约束
#include/*要善于挖掘隐含条件dis[v]-dis[u]>=bian[i].w;一个条件(u,v,bian[i].w);dis[i+1]>=dis[i];隐含条件(i,i+1,0);dis[i+1]-dis[i]=dis[i+1]-1;(i+1,i,-1);>=求最大约束条件,求最长路.<=求最小约束条件,求最短路.*/#include#includeusing na原创 2014-07-24 09:20:39 · 543 阅读 · 0 评论 -
nyoj 115dijkstar求最短路
#include#include#define inf 0x3fffffff#define N 1100int ma[N][N],dis[N],a[N];int m;void dijkstra(int start) {int visit[N],mi,f,i,j;memset(visit,0,sizeof(visit));for(i=1;i<=m;i++) di原创 2014-05-23 17:20:47 · 568 阅读 · 0 评论 -
hdu 1385 floyd记录路径
可以用floyd 直接记录相应路径太棒了!http://blog.youkuaiyun.com/ice_crazy/article/details/7785111#include"stdio.h"#include"string.h"int n;int tax[111];int map[111][111];int path[111][111];void floyd(){ in转载 2014-05-22 11:48:39 · 537 阅读 · 0 评论 -
poj 2139 flord水题
读懂题意就简单了#include#define inf 999999999#define N 310int f[N];int map[N][N];int main() { int n,m,i,j,k,a,b,max,ans; while(scanf("%d%d",&n,&m)!=EOF) { for(i=1;i<=n;i++) for(j=1;j<=n原创 2014-05-11 11:15:20 · 553 阅读 · 0 评论 -
poj 1860 bellman 求正环
#include#include#include//只需判断是否有正环路径就可以了using namespace std;#define N 200struct node {double r,c;}map[N][N];double maxvalue[N],h;int n,cou[N];int bellmanford(int start) { que原创 2014-04-09 14:40:21 · 455 阅读 · 0 评论 -
hdu 4171 最短路
#include#include#include#includeusing namespace std;#define inf 1000000000#define N 110000struct node {int u,v,w,next;}bian[N*2];int head[N],yong,mindistance[N],n,visit[N],countt[N原创 2014-04-22 10:49:25 · 547 阅读 · 0 评论 -
nyoj 307
/*这是一道最短路变形题从每个有藏宝的地方为起点 求到各个点的可以的最大重量,相当于求出了从出口 到 一个藏宝点 所 允许的最大重量,把所有藏宝点的按重量 排序(从小到大)先到最小的藏宝点带上 宝物 再去次大 */#include#include#include#includeusing namespace std;const int N =16000;st原创 2014-04-18 20:36:13 · 629 阅读 · 0 评论 -
poj 1734 floyd求最小环,可得到环上的每个点
#include#include#define inf 100000000#define N 110#define min(a,b) a>b?b:a;int pre[N][N],dis[N][N],ma[N][N],path[N],num,minf;int n,m;void FLOYD() { int i,j,k,s,p; minf=inf; for(k=原创 2014-05-04 21:30:46 · 680 阅读 · 0 评论 -
差分约束学习
http://blog.youkuaiyun.com/xuezhongfenfei/article/details/8685313转载 2014-02-20 13:23:46 · 473 阅读 · 0 评论 -
poj 3159 差分约束
#include#include#include#includeusing namespace std;#define inf 1000000000#define N 31000#define NN 151000struct node {int u,v,w,next;}bian[NN];int n,m,yong,head[N];void cre原创 2014-02-20 13:22:48 · 518 阅读 · 0 评论 -
最短路&查分约束
【HDU】1548 A strange lift 根蒂根基最短路(或bfs)★2544 最短路 根蒂根基最短路★3790 最短路径题目 根蒂根基最短路★2066 一小我的观光 根蒂根基最短路(多源多汇,可以建树超等源点和终点)★2112 HDU Today 根蒂根基最短路★1874 通顺工程续 根蒂根基转载 2014-05-26 18:31:15 · 667 阅读 · 0 评论 -
次短路poj 3255
转载:http://blog.youkuaiyun.com/ehi11/article/details/7932258/*这种思路是在网上借鉴的。很好。速度也非常快。自己实现了一遍。在poj上181MS。主要是分别一起点和终点为源点作两次spfa。然后次短路必定是dist[u]+w+rdist[v]。枚举边。u,v,为边的两个端点,w为边的权值。这个值需要满足的条件是 >dist[n],然后再最转载 2015-05-07 10:00:17 · 650 阅读 · 0 评论 -
hdu 1385 spfa和floyd,dijkstra记录最短最小字典序的路径
/*spfa记录字典序最小的路径*/#include#include#includeusing namespace std;#define inf 0x3fffffff#define N 1100int a[N][N];int b[N];int n;int pre[N],dis[N],vis[N];void init(){ memset(pre,-1,sizeo原创 2015-05-06 10:58:31 · 1798 阅读 · 0 评论 -
hdu 4871 树的分治+最短路记录路径
/*题意:给你一些节点和一些边,求最短路径树上是k个节点的最长的路径数。解:1、求出最短路径树--spfa加记录 2、树上进行操作--树的分治,分别处理子树进行补集等运算*/#include#include#include#include#include#include#define ll __int64using namespace std;#define N原创 2014-10-04 17:14:40 · 1143 阅读 · 0 评论 -
HDU 1198
#include#include#define N 550int map[N][N];int f[N][N][5],h[N][5];int pre[N];int find(int n) {if(n!=pre[n])pre[n]=find(pre[n]);return pre[n];}int main() {int n,m,i,j,ans,f1,f2;原创 2013-11-10 17:18:36 · 744 阅读 · 0 评论 -
poj 3621最优比例生成环(01分数规划问题)
/*和求最优生成树差不多转载思路:http://www.cnblogs.com/wally/p/3228171.html思路:之前做过最小比率生成树,也是属于0/1整数划分问题,这次碰到这道最优比率环,很是熟悉,可惜精度没控制好,要不就是wa,要不就是tle,郁闷啊!实在是懒得码字,直接copy吧:题目的意思是:求一个环的{点权和}除以{边权和},使得那个环在所有环中{点权和}除以{边权原创 2014-08-20 16:22:11 · 671 阅读 · 0 评论 -
poj 1724 最短路+优先队列(两个约束条件)
/*两个约束条件求最短路,用优先队列*/#include#include#includeusing namespace std;#define N 110struct node {int u,v,w,f,next;}bian[N*N*4];int head[N],yong,money;void init() {memset(head,-1,sizeof(head));yo原创 2014-08-04 11:41:31 · 805 阅读 · 0 评论 -
hdu 1245 Saving James Bond 策画几何+最短路 最短路求步数最少的路径
#include#include#include#define inf 0x3fffffff#define N 200#define eps 1e-10#includeusing namespace std;struct node { int x,y;}ma[N];struct nodee {int u,v,next;double w;}b原创 2014-07-04 16:05:34 · 602 阅读 · 0 评论 -
poj 1364 查分约束
#include#include#include#includeusing namespace std;#define inf 999999999#define N 300struct node { int u,v,w,next;}bian[N*10];int yong,n,head[N];void addedge(int u,int v,int w) { bian[yo原创 2014-02-22 14:17:09 · 609 阅读 · 0 评论 -
floyd求最小环 模板
http://www.cnblogs.com/Yz81128/archive/2012/08/15/2640940.html求最小环floyd求最小环2011-08-14 9:421 定义:通常来说最小环是针对有向图而言从一个点出发,经过一条简单路径回到起点成为环.图的最小环就是所有环中长度最小的.2.怎样求最小环呢?1传转载 2014-05-04 20:38:14 · 689 阅读 · 2 评论 -
fzu 2173 floyd+矩阵快速幂
#include#define inf 1000000000000000#define N 100long long tmp[N][N],ma[N][N];int n;long long min(long long a,long long b){ return a}void floy(long long a[N][N]){ int i,j,原创 2014-04-30 12:17:19 · 634 阅读 · 0 评论 -
Dijkstra、Bellman_Ford、SPFA、Floyd算法复杂度比较
http://blog.youkuaiyun.com/xiazdong/article/details/8193680转载 2014-03-19 14:47:00 · 636 阅读 · 0 评论 -
hdu 1217
#include#include#include#includeusing namespace std;#define N 40#define inf 999999999mapmymap;double ma[N][100];int main() {int t,n,m,i,j,k,f1,f2,count=0,flag;char str1[100],st原创 2013-11-10 15:39:44 · 760 阅读 · 0 评论 -
hdu 1874
#include#include#define N 300#define inf 1000000000int map[N][N],dis[N],n;void dijkstra(int v0) {int i,j,u,min,visit[N];memset(visit,0,sizeof(visit));for(i=0;idis[i]=map[v0][i];vis原创 2013-11-09 19:30:57 · 497 阅读 · 0 评论 -
poj 2253
dijkstra借鉴http://blog.youkuaiyun.com/wangjian8006/article/details/7871812#include#include#define N 300#define inf 999999999double map[N][N],dis[N];double max(double a,double b) {return a>b?原创 2013-11-03 22:22:47 · 580 阅读 · 0 评论 -
hdu 2112
#include#include#define N 200#define inf 999999999999__int64 map[N][N],dis[N];char s[N][40];void dijkstra(__int64 s,__int64 t,__int64 n) { __int64 visit[N],u,min,i,j; for(i=0;i原创 2013-11-02 18:02:12 · 635 阅读 · 0 评论 -
hdu 2066
#include#include#define N 1100#define inf 0x7fffffffint map[N][N];int main() {int t,s,d,n,m,a,b,i,j,k,max,lk[N],le[N];while(scanf("%d%d%d",&n,&s,&d)!=EOF) {for(i=1;ifor(j=1;jmap[i]原创 2013-11-02 16:39:39 · 605 阅读 · 0 评论 -
hdu 2544
#include#include#define N 1000#define inf 0x7fffffffint map[N+10][N+10],cost[N+10][N+10],dis[N+10],fee[N+10],visit[N+10];void dijkstra(int s,int t,int n) {int i,j;memset(visit,0,sizeof(v原创 2013-11-02 14:31:07 · 589 阅读 · 0 评论 -
hdu 1548
#include#define N 300#define inf 999999999int map[N][N],path[N],dis[N],n;void dijkstra(int v0,int vn) { int visit[N]; int min,w,i,j; for(i=1;i visit[i]=0; di原创 2013-10-31 16:16:11 · 677 阅读 · 0 评论 -
3790
#include#include#include#define N 1010int map[N][N],f[N][N],path[N],d[N],visited[N],fee[N];dijkstra(int v0,int vt,int n){ int v,i,min,w,next,sum=0,k; memset(visited,0,sizeof(visi转载 2013-10-31 18:54:12 · 476 阅读 · 0 评论 -
hdu 1162
#include#include#include#define N 200#define inf 999999999double map[N][N];int visit[N],next[N];int main() {int n,m,i,j,k,cnt;double a[N],b[N],dis,min;while(scanf("%d",&n)!=EOF) {原创 2013-11-10 15:54:21 · 657 阅读 · 0 评论 -
poj1975
#include#include#define N 100int map[N][N];int main() {int t,n,m,i,j,k,sum1,sum2,total,mid,a,b;scanf("%d",&t);while(t--) {scanf("%d%d",&n,&m);memset(map,0,sizeof(map));while(m--) {原创 2013-11-11 13:40:19 · 728 阅读 · 0 评论 -
poj1502
#include//考英语的题坑。。。#include#define N 200#define inf 999999999int map[N][N];int main() {int i,j,k,n,m,max;char s[20];while(scanf("%d",&n)!=EOF) {memset(map,0,sizeof(map));for(i=2;i原创 2013-11-11 13:57:59 · 726 阅读 · 0 评论 -
foj 2173 floyd+矩阵快速幂
FOJ 2173 Nostop 从1点到n点恰好走了k次的最短路题目链接:http://acm.fzu.edu.cn/problem.php?pid=2173思路:类似于传递闭包的性质用矩阵mp[i][j] 表示i点到j点 走1次的最短路--------------若我们用 mp[i][j] 表示从i点到j点 走了k次的最短路距离转载 2014-04-30 10:33:14 · 689 阅读 · 0 评论 -
请问spfa+stack 和spfa+queue 是什么原理
一个是bfs加迭代一个是dfs加迭代请问迭代是什么就是不断地做,做到没有更优的解为止或者是不断得做,做到逼近答案为止。。原创 2014-03-19 15:52:49 · 835 阅读 · 0 评论 -
hdu 4707 bellman
最短路的优先队列做法:#include#include#include#define N 100010#define inf 0x3fffffffusing namespace std;int first[N],next[N],u[N],v[N],w[N],d[N];int main(){int t,i,e,cnt,dis,n;scanf("%d",&原创 2014-03-11 13:30:10 · 546 阅读 · 0 评论 -
hdu 1874 dijkstra 队列实现 比数组高效特别在稀疏图
参考 http://blog.youkuaiyun.com/zhuyingqingfen/article/details/6370561刘汝佳白皮书#include#include#include#includeusing namespace std;#define N 2100#define inf 1000000000int n,m;struct node {原创 2014-02-19 21:14:05 · 635 阅读 · 0 评论 -
1874 Bellman-ford算法 队列优化过的 用于稀疏图,有负权的图
#include#include#include#includeusing namespace std;#define N 2100struct node {int u,v,w,next;}bian[N];int n,m,yong,head[N];void creat(int u,int v,int w) {bian[yong].u=u;bian[原创 2014-02-19 18:58:15 · 731 阅读 · 0 评论 -
Bellman-ford算法的学习http://blog.youkuaiyun.com/niushuai666/article/details/6791765
http://hi.baidu.com/qifeiyixue77/item/ca790fdbdcf683fb54347f81转载 2014-02-18 21:07:50 · 558 阅读 · 0 评论