ZOJ1333 POJ1545 Galactic Import,Floyd算法
来源:互联网 发布:微观企业数据库 编辑:程序博客网 时间:2024/05/21 06:25
只从用了Floyd算法后,我就把Dijkstra算法抛弃了。。。这题要注意的有几点,第一,就是编号可以从任意一个字符开始,所以一般都是开到26*26的矩阵,而且循环必须要循环到26而不是n;第二,就是Floyd的路径更新判断了,可以看我代码。
/******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last modified: 2011-08-16 23:05 # Filename: ZOJ1333 POJ1545 Galactic Import.cpp # Description : ******************************************************************************/// ZOJ1333 POJ1545 Galactic Import.cpp : Defines the entry point for the console application.//// #include "stdafx.h"#include <fstream>#include <stdio.h>#include <iostream>#include <string.h>#include <string>#include <math.h>#include <memory.h>#include <assert.h>using namespace std;#define LIMITS 0.00#define MAX_NUM 30int main(void){// ifstream cin("data.txt");int n;char source;double value;string str;double map[MAX_NUM][MAX_NUM];int thrusto[MAX_NUM];int index;while(cin>>n){memset(thrusto,0,sizeof(thrusto));for(int i=0;i<MAX_NUM;++i){for(int j=0;j<MAX_NUM;++j)map[i][j]=LIMITS;}for(int i=0;i<n;++i){cin>>source>>value>>str;source -='A';if (source=='M'-'A'){assert(source=='M'-'A');}for(int j=0;j<str.length();++j){map[source][source]=value;if(str.at(j)!='*'){map[source][str.at(j)-'A']=value;}else{thrusto[source]=1;}}} for(int i=0;i<MAX_NUM;++i){for(int j=0;j<MAX_NUM;++j){for(int k=0;k<MAX_NUM;++k){//如果j和i,i和k之间有通路,而且原来从j到k的价值,比从j到i,i到k的价值低,则更新if(map[j][k]<map[j][i]*0.95 &&map[j][i]>0.0&&map[i][k]>0.0){map[j][k]=map[j][i]*map[i][k]*0.95;}}}}index=0;value=0.0;for(int j=0;j<MAX_NUM;++j){if(thrusto[j]){for(int i=0;i<MAX_NUM;++i){if(value<map[i][j]){index=i;value=map[i][j];}}}}printf("Import from %c\n",index+'A');}return 0;}
- ZOJ1333 POJ1545 Galactic Import,Floyd算法
- zoj 1333 && poj 1545 Galactic Import(floyd)
- ZOJ 1333 Galactic Import 【SPFA】
- zoj 1333 || poj 1545 Galactic Import(Dijkstra~)
- POJ 1545 / ZOJ 1333 Galactic Import (bfs || 最短路径)
- Floyd算法
- Floyd算法
- Floyd算法
- Floyd算法
- Floyd算法
- Floyd算法
- Floyd算法
- Floyd算法
- floyd 算法
- Floyd算法
- floyd算法
- Floyd算法
- Floyd算法
- scanf 与 gets()的区别
- C#数据结构和算法学习系列一----打造自己的Collection类
- alter index coalesce和alter index rebuild的区别
- android模拟器无法联网
- 如何在单片机上使用printf函数(printf)(avr)(stm)(lpc)(单片机)
- ZOJ1333 POJ1545 Galactic Import,Floyd算法
- Step By Step Instructions on Installing Oracle 11g Real Application Cluster (RAC) (11.1.0.6) 32-bit
- joj1349
- 111
- Android SDK和最新ADT下载地址
- 在win7上安装VS2010时VC9.0Runtime组件总是安装失败。
- AcmStep Chapter One Section Two—Climbing Worm
- 222
- DBA 基础知识