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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • UI自动化控制微信发送文件【解决了一个无人回答的难题,Pywin32设置文件到剪切板】「建议收藏」

    UI自动化控制微信发送文件【解决了一个无人回答的难题,Pywin32设置文件到剪切板】「建议收藏」大家好,我是小小明。前面我在《UI自动化控制PC版微信》该系列文中更新了控制微信发送图片的方法。链接:https://blog.csdn.net/as604049322/category_11396772.html根据部分群友实际工作的需要,本文将分享如何控制微信发送文件。按照前面的思路,我们发送文本和图片,都是采用复制粘贴操作剪切板的方式,而uiautomation框架本身也提供了复制文本或图片的方法。但是如果需要复制文件到剪切板,uiautomation并没有提供相应的api。翻遍了全网的资

    2022年7月11日
    22
  • 面试题–应用 FileInputStream类,应用java程序,从磁盘上读取一个Java程序,并将源代码显示在屏幕上

    面试题–应用 FileInputStream类,应用java程序,从磁盘上读取一个Java程序,并将源代码显示在屏幕上package java基础;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;/** * 应用FileInputStream类,编写应用程序,从磁盘上读取一个Java程序,并将源程序代码显示在屏幕上。 * b – 存储读取数据的缓冲区。 …

    2022年6月13日
    74
  • 钓鱼网站php,偶遇钓鱼网站的一次代码审计「建议收藏」

    钓鱼网站php,偶遇钓鱼网站的一次代码审计「建议收藏」偶遇一个钓鱼邮件中的钓鱼网站,并与年华大佬做了代码审计。据说近期全国出现多起钓鱼邮件事件,主要以各大高校为主,已有不少人上当,还需多加注意。分析钓鱼网站钓鱼网站采用常用空间钓鱼CMS搭建,可通过百度搜索下载源码。源码观察源码发现,源码中存在360safe防护机制,无法通过正常方式进行攻击。分析猜测钓鱼网站后台管理页面地址,发现地址为无法知道用户名密码,分析源码,查看是否存在绕过。观察index…

    2022年8月24日
    7
  • java语言_java好学吗?java是不是最难学的语言?

    java语言_java好学吗?java是不是最难学的语言?java好学吗?java是不是最难学的语言?对于一些刚接触java的朋友来说,可能会有这样的疑问,下面就来一起了解下吧。1、java好学吗?  从某些方面来说,java比较容易学,如果是大学毕业,大学计算机专业里大多开设了java基础课程,或者学过一点编程,学起java来也会轻松不少。即使是零基础也不用担心,java可以零基础授课,入门比较简单,难的是学深入,这不是一件容易的事。学习java…

    2022年7月7日
    25
  • Vue项目关闭eslint校验「建议收藏」

    Vue项目关闭eslint校验「建议收藏」1.vue-cli2.0关闭eslint校验vue-cli2.0实现2.vue-cli3.0关闭eslint校验报错:eslint-disable-next-linetoignorethenextline.解决方法:找到文件vue.config.js,打开文件:修改lintOnSave为false,如果没有就添加lintOnSave为false…

    2022年5月15日
    49
  • java tomcat 环境变量配置_手把手教你如何配置tomcat环境变量「建议收藏」

    java tomcat 环境变量配置_手把手教你如何配置tomcat环境变量「建议收藏」我们下载安装了tomcat,那么tomcat环境变量配置怎么配置?下面小编就和大家分享下tomcat环境变量的配置。首先介绍安装JDK和Tomcat一、安装JDK和Tomcat1、安装JDK:直接运行jdk-7-windows-i586.exe可执行程序,默认安装即可。备注:路径可以其他盘符,不建议路径包含中文名及特殊符号。2、安装Tomcat:直接解压缩下载文件“apache-tomcat-7….

    2022年5月31日
    33

发表回复

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

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