zoukankan      html  css  js  c++  java
  • 题解 UVA10048 【Audiophobia】

    这是一道很神奇的题

    什么都不卡,就卡c++11(所以评测时要换成c++)。
    怎么说呐,其实就是跑一个弗洛依德,求图上两点间最大权值最小的路径,输出最大权值最小。
    P.S.本题n很小,直接floyd变形就行了qwq

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    
    #define N 105
    
    using namespace std;
    
    const int INF = 0x3f3f3f3f;
    
    int g[N][N], t = 1, que, n, m;
    
    void floyd() {
    	for (int k = 1; k <= n; k++)
    		for (int i = 1; i <= n; i++)
    			for (int j = 1; j <= n; j++) {
    				int maxx = g[i][k] < g[k][j] ? g[j][k] : g[i][k];
    				if (g[i][j] > maxx)
    					g[i][j] = maxx;
    			}
    }
    
    int main() {
    	while (scanf("%d%d%d", &n, &m, &que) && n || m || que) {
    		memset(g, INF, sizeof(g));
    		int a, b, c;
    		for (int i = 0; i < m; i++) {
    			scanf("%d%d%d", &a, &b, &c);
    			g[a][b] = g[b][a] = c;
    		}
    		floyd();
    		int sta, end;
    		if (t != 1)
    			printf("
    ");
    		printf("Case #%d
    ");
    		t++;
    		while (que--) {
    			scanf("%d%d", &sta, &end);
    			if (g[sta][end] < INF)
    				printf("%d
    ", g[sta][end]);
    			else
    				printf("no path
    ");
    		}
    	}
    	return 0;
    }
    

    不要问我为什么有这么多空格,其实我也不知道为什么!!!

    有些路你和某人一起走,就长得离谱,你和另外一些人走,就短得让人舍不得迈开脚步。
  • 相关阅读:
    Beta 冲刺day 6
    Beta冲刺day5
    Beta冲刺day4
    Beta 冲刺day3
    Beta 冲刺day2
    Beta冲刺day1
    Beta预备
    城市安全风险管理项目Postmortem结果
    项目总结
    Alpha冲刺置顶随笔
  • 原文地址:https://www.cnblogs.com/Repulser/p/9579842.html
Copyright © 2011-2022 走看看