POJ-1502-MPI Maelstrom

POJ-1502-MPI Maelstrom

链接:https://vjudge.net/problem/POJ-1502

题意:

n个点,从1号向开始选择任意个结点发送信息,下一个结点接收到信息后可再向任意个结点发送。

同时发送信息有时间代价。代价有邻接矩阵给出。只给出坐下全部,x为不连通。

同时为无向的。即a->b == b->a。

求每个结点都接受到信息的最小时间代价。

思路:

Dijkstra,求Dis数组中的最大值

代码:

#include <iostream>
#include <memory.h>
#include <string>
#include <istream>
#include <sstream>
using namespace std;
const int MAXN = 100+10;
int Map[MAXN][MAXN];
int Dis[MAXN];
int Vis[MAXN];

int main()
{
    int n;
    scanf("%d",&n);

    for (int i = 1;i<=n;i++)
        for (int j = 1;j<=n;j++)
            if (i == j)
                Map[i][j] = 0;
            else
                Map[i][j] = 999999;

    for (int i = 2;i<=n;i++)
        for (int j = 1;j<i;j++)
        {
            string x;
            cin >> x;
            if (x[0] != 'x')
            {
                istringstream iss(x);
                int num;
                iss >> num;
                Map[i][j] = Map[j][i] = num;
            }
        }
    for (int i = 1;i<=n;i++)
        Dis[i] = Map[1][i];
    Vis[1] = 1;
    for (int i = 1;i<=n;i++)
    {
        int w = -1,small = 999999;
        for (int j = 1;j<=n;j++)
            if (Vis[j] == 0&&Dis[j] < small)
            {
                w = j;
                small = Dis[j];
            }
        Vis[w] = 1;
        for (int j = 1;j<=n;j++)
        {
            if (Vis[j] == 0)
            {
                Dis[j] = min(Dis[j],Dis[w]+Map[w][j]);
                //cout << Dis[j] << ' ' << Dis[w] + Map[w][j] << endl;
            }
        }
    }
    int sum = 0;
    for (int i = 2;i<=n;i++)
        sum = max(sum,Dis[i]);
    cout << sum << endl;

    return 0;
}
/*
4
10
x 10
x x 10
 */

  

转载于:https://www.cnblogs.com/YDDDD/p/10274877.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101169.html原文链接:https://javaforall.net

(0)
上一篇 2021年6月21日 下午1:00
下一篇 2021年6月21日 下午2:00


相关推荐

  • 关于RPC协议的通俗理解

    关于RPC协议的通俗理解根据网上搜索的一些资料摘抄汇总的,如果有误,欢迎斧正。作者:肖继潮链接:http://www.zhihu.com/question/25536695/answer/31046384来源:知乎著作权归作者所有,转载请联系作者获得授权。早期单机时代,一台电脑上运行多个进程,大家各干各的,老死不相往来。假如A进程需要一个画图的功能,B进程也需要一个画图的功能,程序员就必须为两个进程都写一个画图的功能。这…

    2022年5月20日
    90
  • 通过 Linux 容器进行虚拟化

    通过 Linux 容器进行虚拟化

    2021年11月30日
    45
  • c++语言计算2的n次方,2的N次方

    c++语言计算2的n次方,2的N次方题目的链接为 http acm njupt edu cn acmhome problemdetai do amp method showdetail amp id 1009 题目为 2 的 N 次方时间限制 普通 Java 1000MS 3000MS 运行内存限制 65536KByte 总提交 999 测试通过 500 描述编程精确计算 2 的 N 次方 N 是介于 1

    2025年8月20日
    6
  • N 皇后问题_用回溯法解N皇后问题

    N 皇后问题_用回溯法解N皇后问题n皇后问题研究的是如何将n个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。给定一个整数n,返回所有不同的n皇后问题的解决方案。每一种解法包含一个明确的n皇后问题的棋子放置方案,该方案中‘Q’和‘.’分别代表了皇后和空位。示例如下:输入:4输出:[[".Q..",//解法1"…Q","Q…","…..

    2022年9月30日
    7
  • bs与cs的区别简述_bs和cs页面

    bs与cs的区别简述_bs和cs页面B/SB/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的,Browser浏览器,其实也是一种Client客户端,只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就能进行增删改查。不依赖用户的电脑操作系统环境,只与浏览器环境有关,当然由于网页复杂性,又延伸出网页前端技术与后端技术,前端技术指的是在浏览器上编程的技术,比如:JS,HTML,CSS,这些前端技术是运行在客户端B

    2022年10月16日
    4
  • 多项logistic回归系数解释_深入解读Logistic回归结果(一):回归系数,OR

    多项logistic回归系数解释_深入解读Logistic回归结果(一):回归系数,OR深入解读 Logistic 回归结果 一 回归系数 OR 关键词 Logistic 回归分析 lasso 回归系数解读 回归系数解读 Logistic 回归虽然名字叫 回归 但却是一种分类学习方法 使用场景大概有两个 第一用来预测 第二寻找因变量的影响因素 一从线性回归到 Logistic 回归线性回归和 Logistic 回归都是广义线性模型的特例 假设有一个因变量 y 和一组自变量 x1 x2 x3

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号