ZOJ 2797 ||POJ 2472 floyd变形
2013-03-25 00:42
218 查看
记住一定要初始化dis[][],因为这边wa了几次。
题意:求起点1到终点n不被抓的概率。也就是要是输出 的结果最大。只要把floyd状态方程改为*就行了。如下所示:
dis[i][j]=max(dis[i][j],dis[i][k]*dis[k][j]).
切记初始化dis[i][j]=0;
要求最大则初始化为-INF 或者0.不能是INF
View Code
题意:求起点1到终点n不被抓的概率。也就是要是输出 的结果最大。只要把floyd状态方程改为*就行了。如下所示:
dis[i][j]=max(dis[i][j],dis[i][k]*dis[k][j]).
切记初始化dis[i][j]=0;
要求最大则初始化为-INF 或者0.不能是INF
View Code
// I'm the Topcoder //C #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <math.h> #include <time.h> //C++ #include <iostream> #include <algorithm> #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <cctype> #include <stack> #include <string> #include <list> #include <queue> #include <map> #include <vector> #include <deque> #include <set> using namespace std; //*************************OUTPUT************************* #ifdef WIN32 #define INT64 "%I64d" #define UINT64 "%I64u" #else #define INT64 "%lld" #define UINT64 "%llu" #endif //**************************CONSTANT*********************** #define INF 0x3f3f3f3f #define eps 1e-8 #define PI acos(-1.) #define PI2 asin (1.); typedef long long LL; //typedef __int64 LL; //codeforces typedef unsigned int ui; typedef unsigned long long ui64; #define MP make_pair typedef vector<int> VI; typedef pair<int, int> PII; #define pb push_back #define mp make_pair //***************************SENTENCE************************ #define CL(a,b) memset (a, b, sizeof (a)) #define sqr(a,b) sqrt ((double)(a)*(a) + (double)(b)*(b)) #define sqr3(a,b,c) sqrt((double)(a)*(a) + (double)(b)*(b) + (double)(c)*(c)) //****************************FUNCTION************************ template <typename T> double DIS(T va, T vb) { return sqr(va.x - vb.x, va.y - vb.y); } template <class T> inline T INTEGER_LEN(T v) { int len = 1; while (v /= 10) ++len; return len; } template <typename T> inline T square(T va, T vb) { return va * va + vb * vb; } // aply for the memory of the stack //#pragma comment (linker, "/STACK:1024000000,1024000000") //end int n,m; const int maxn = 1000+10; double dis[maxn][maxn]; int s,e; double w; void floyd(){ for(int k=1;k<=n;k++){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ dis[i][j]=max(dis[i][j],dis[i][k]*dis[k][j]); } } } } int main(){ // int n,m; while(scanf("%d",&n)!=EOF){ if(n==0) break; scanf("%d",&m); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ dis[i][j]=0; } dis[i][i]=0; } for(int i=1;i<=m;i++){ scanf("%d%d%lf",&s,&e,&w); dis[s][e]=dis[e][s]=(double)(w/100); //printf("****%lf\n",dis[s][e]); } floyd(); printf("%.6lf percent\n",dis[1] *100); } return 0; }
相关文章推荐
- ZOJ 2797 ||POJ 2472 floyd变形
- ZOJ 2797 POJ 2472 106 miles to Chicago
- POJ 2472 &&ZOJ 2797 (106 miles to Chicago)
- poj 3615(floyd变形 水题)
- poj 3660(floyd 变形)
- POJ 1932 XYZZY (ZOJ 1935)SPFA+floyd
- zoj 1333 && poj 1545 Galactic Import(floyd)
- poj 2253 Frogger(floyd变形)
- zoj 2792 && poj 2472 106 miles to Chicago
- zoj 1221 || poj 1603 Risk(Floyd~)
- POJ 3615 (变形的floyd,最大的最小)
- POJ 2240 Arbitrage (floyd变形)
- poj2240 Arbitrage 图论,Floyd变形
- POJ 2253 Frogger (Floyd的变形)
- poj2263 zoj1952 Heavy Cargo(floyd||spfa)
- POJ 2472 ||SDUT 2358 106 miles to Chicago(Dijkstra算法变形)
- POJ - 3660 Cow Contest (floyd变形)
- (POJ 2253)Frogger 求所有可达路径中的最大边的最小值 dijkstra || floyd 变形
- zoj 1935 || poj 1932 XYZZY(SPFA+Floyd)
- Floyd-Warshall算法(求解任意两点间的最短路) 详解 + 变形 之 poj 2253 Frogger