floyd
代码随想录
代码随想录网站:https://programmercarl.com
展开
-
poj 1125 Stockbroker Grapevine 很好的一道floyd入门题
这道题虽然对大牛来说是floyd的水题,但我感觉作为入门题应给算是很好的一道题 floyd最值得注意的地方是中间变量放在for循环外围!!! 这是由其算法本身所决定的,其每一步求出任意一对顶点之间仅通过中间节点1,2,...,k的最短距离,当1,2,...,k扩展到所有顶点原创 2011-08-18 14:43:00 · 912 阅读 · 0 评论 -
poj 无向图最小环问题 详解,模板
无向图的最小环问题: 无向图的最小环的求法不可能和有向图的求法一样, 因为在有向图中i 到j 和 j 到i 算是一个环,但在无向图中不是一个环, 如果直接用flody算法将会出错, 有向图的环可以为2个顶点,而无向图的环至少要三个顶点; 所以为了求无向图的最小环, 我们采用的原理是: 枚举最大环中的连接点,更新环的权重; 比普通Floyd多出来的部分,主要利用到的原理是当处理到k时原创 2011-12-08 21:20:56 · 4389 阅读 · 0 评论 -
poj 3660 Cow Contest floyd 传递闭包!!基础
算出比i小的couy,算出比i大的 coux,看相加是不是等于n-1,果断一a!!!#include using namespace std; int map[105][105]; int main() { int n,m,x,y; while(cin>>n>>m) { memset(map,0,sizeof(map)); while(m--) { s原创 2011-11-30 23:27:13 · 785 阅读 · 0 评论 -
poj 2253 Frogger floyd 长路求权值最大边,属于简单题!!!!
刚开始做这道题的时候,一看就是floyd,果断打代码,wa了,然后就看看discuss,我去,全是dij,和prim,还有什么二分加并查集,这一下子给我整抑郁了后来终于看见一个志同道合的,一句话一语道破啊!!!求长路中权值最大边的floyd核心公式map[i][j]=min(map[i][j],max(map[i][k],map[k][j])),我当时忘考虑和自己的map[][]比较了,改完果断A原创 2011-11-28 23:44:15 · 1091 阅读 · 3 评论 -
poj 2240 Arbitrage floyd基础,字符串输入有点麻烦
此题与2263一样,floyid #include using namespace std; float map[205][205],pri; char a[100],b[100]; char name[205][100]; int cou=0; int find()//处理字符串输入 { for(int i=1;i<202;i++) { if(strcmp(name原创 2011-11-26 03:39:42 · 605 阅读 · 0 评论 -
poi 1847 Tram floyd!!基础,但这道题有一句很隐晦,容易wa
#include using namespace std; int map[205][205]; #define inf 0x7FFFFF int main() { int n,m,a,b,t; while(cin>>n>>a>>b) { for(int i=0;i<205;i++) { for(int j=0;j<205;j++) {原创 2011-11-23 11:32:24 · 703 阅读 · 0 评论 -
poj 2263 Heavy Cargo floyd基础,就是输入的时候处理字符串纠结一点!!!!
#include using namespace std; int map[205][205],pri; char a[100],b[100]; char name[205][100]; int cou=0; int find()//寻找a字符串的位置 { for(int i=1;i<202;i++) { if(strcmp(name[i],a)==0) retu原创 2011-11-17 03:24:33 · 859 阅读 · 0 评论 -
poj Cow Hurdles floyd基础题!!!!
#include using namespace std; int map[305][305]; int min(int x,int y) { return x>y ? y:x; } int main() { int n,m,t,s,e,h,x,y; while(cin>>n>>m>>t) { for(int i=0;i<305;i++) { fo原创 2011-11-17 01:47:08 · 729 阅读 · 0 评论 -
poj Risk 1603 floyd基础题!!
基础的floyd!!!!!!!!!#include using namespace std; int map[50][50]; int main() { int n,t; int cases=1; while(cin>>n) { for(int i=0;i<50;i++) { for(int j=0;j<50;j++) map[i][j]=100原创 2011-11-17 00:27:11 · 616 阅读 · 0 评论 -
poj 2594 Treasure Exploration 匈牙利二分匹配+floyd
这道题可以理解为只要有一个点连出去了,连了集合点无所谓,那么我们就少用一个机器人,譬如1连2,3,4,5,那么我们就少用一个机器人,用4个就行,所以说 二分匹配,有几个匹配,我们就少用几个,所以我们用匈牙利来解决 还有一个问题是在用匈牙利时,如果1连2,2连3,4又连2,2又连5,这样的话,我们在用匈牙利时,第一次走过2,第二次,4就不能在走2了,但根据提议是可以走的 所以我们用一下floy原创 2012-02-08 12:55:32 · 723 阅读 · 0 评论