zoukankan      html  css  js  c++  java
  • AOJ 0189 Convenient Location (Floyd)

    题意:

    求某一个办公室 到其他所有办公室的 总距离最短  办公室数 不超过10

    输入:多组输入,每组第一行为n (1 ≤ n ≤ 45),接下来n行是 (x, y, d),x到y的距离是d
    输出:办公室号 和 最短距离

    #include <iostream>
    #include <stdio.h>
    #include <algorithm> 
    #include <cstring>
    #include <string>
    using namespace std;
    const int INF = 0x3f3f3f3f;
    
    int n, dp[15][15];
    
    int main()
    {
    	while (cin >> n && n) 
    	{
    		int V = 0;
    		memset(dp, INF, sizeof dp);
    		for (int i = 1; i <= n; ++i) 
    		{
    			int x, y, v; cin >> x >> y >> v;
    			dp[x][y] = dp[y][x] = v;
    			V = max(V, max(x, y));
    		}
    		for (int k = 0; k <= V; ++k)
    			for (int i = 0; i <= V; ++i)
    				for (int j = 0; j <= V; ++j)
    					dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j]);
    
    		int ans = INF, loc;
    		for (int i = 0; i <= V; ++i) 
    		{
    			int t = 0;
    			for (int j = 0; j <= V; ++j) 
    			{
    				if (i == j) continue;
    				t += dp[i][j];
    			}
    			if (t < ans) ans = t, loc = i;
    		}
    		cout << loc << ' ' << ans << endl;
    	}
    	return 0;
    }
    
  • 相关阅读:
    内部类的作用
    zookeeper(1)-概述
    @RequestBody、@ResponseBody注解是如何将输入输出转换成json的
    HashMap之红黑树
    HashMap深入理解
    SpringBoot的四种定时任务
    Redis基础
    Redis内存回收机制
    高频面试题
    36. Valid Sudoku
  • 原文地址:https://www.cnblogs.com/demian/p/7384704.html
Copyright © 2011-2022 走看看