蓝桥杯每日一题(floyd算法)

4074 铁路与公路

如果两个城市之间有铁路t1=1,公路就会t2>1,没铁路的时候t1>1,公路t2=1。也就是公路铁路永远都不会相等。我们只需要计算通过公路和铁路从1到n最大的那个即可。

floyd是直接在数组上更新距离。不需要新建dis数组。另外一定要记得把邻接矩阵初始化为无穷

#include<bits/stdc++.h>
using namespace std;
//4074铁路与公路
const int N=410,M=79810;
int p[N][N],r[N][N];
int n,m;
int floyd(int a[][N])//走公路或者走铁路的最短路
{
    if(a[1][n]==1)return 1;
    for(int k=1;k<=n;k++)
    {
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                if(a[i][j]>a[i][k]+a[k][j])
                {
                    a[i][j]=a[i][k]+a[k][j];
                }
            }
        }
    }
    return a[1][n];
}
int main()
{
    cin>>n;
    cin>>m;
    //一定要先把图初始化为无穷后面floyd直接在图上进行更新
    memset(p,0x3f,sizeof(p));
    memset(r,0x3f,sizeof(r));
    while(m--)
    {
        int x,y;
        cin>>x>>y;
        p[x][y]=p[y][x]=1;
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(i!=j&&p[i][j]!=1)
            {
                r[i][j]=1;
            }
        }
    }
    int ans=max(floyd(p),floyd(r));
    if(ans==0x3f3f3f3f)
    {
        cout<<-1<<endl;
    }
    else
    {
        cout<<ans<<endl;
    }
}

854 Floyd求最短路

1、关于为什么是INF/2

2、为什么输入边的时候要min

因为发现输入里面可以重复输入相同边为不同的值。只保留最小的即可。 

#include<bits/stdc++.h>
using namespace std;
//4074铁路与公路
const int N=210,INF=0x3f3f3f3f;
int p[N][N];
int n,m,k;
void floyd()
{
    for(int k=1;k<=n;k++)
    {
      for(int i=1;i<=n;i++)
      {
          for(int j=1;j<=n;j++)
          {
              p[i][j]=min(p[i][j],p[i][k]+p[k][j]);
          }
      }
    }
}
int main()
{
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++)
      {
          for(int j=1;j<=n;j++)
          {
              if(i==j)p[i][j]=0;
              else
              {p[i][j]=INF;
              }
          }
      }
    while(m--)
    {
        int x,y,v;
        cin>>x>>y>>v;
        p[x][y]=min(p[x][y],v);
    }
    floyd();
    while(k--)
    {
        int x,y;
        cin>>x>>y;
        if(p[x][y]<INF/2)
        {
            cout<<p[x][y]<<endl;
        }
        else
        {
            cout<<"impossible"<<endl;
        }
    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/493399.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024,听世界用中文讲故事

汉语为桥&#xff0c;联结一段中国缘分&#xff1b;故事为骨&#xff0c;分享一段精彩人生&#xff1b;文化为翼&#xff0c;共筑一个和美地球村。近日&#xff0c;由教育部中外语言交流合作中心主办、中文联盟承办的第二届“汉语桥”全球外国人汉语大会故事会启动。与世界深情…

C#执行命令行

效果图 主要代码方法 private Process p;public List<string> ExecuteCmd(string args){System.Diagnostics.Process p new System.Diagnostics.Process();p.StartInfo.FileName "cmd.exe";p.StartInfo.RedirectStandardInput true;p.StartInfo.RedirectSta…

如何删除Excel中的空白行?这里提供详细步骤

要从数据集中删除所有空白行吗&#xff1f;如果是这样&#xff0c;Microsoft Excel提供自动和手动方法来清除空白行并向上移动数据。下面是如何使用这些方法。 删除空白行时&#xff0c;Excel会删除整行并上移数据&#xff0c;以便数据集中不再有空行。记住&#xff0c;你也可…

数据结构/C++:位图 布隆过滤器

数据结构/C&#xff1a;位图 & 布隆过滤器 位图实现应用 布隆过滤器实现应用 哈希表通过映射关系&#xff0c;实现了O(1)的复杂度来查找数据。相比于其它数据结构&#xff0c;哈希在实践中是一个非常重要的思想&#xff0c;本博客将介绍哈希思想的两大应用&#xff0c;位图…

VS code中安装了git插件,报错无法使用怎么办?

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端程序媛。 1枚程序媛&#xff0c;2年时间从1800到月入过万&#xff0c;工作5年买房。 分享成长心得❤️&#xff0c;和你一起慢慢变富。 后台回复“前端工具”可获取开发工具&#xff0c;持续更新中 后台…

就业班 第二阶段 2401--3.27 day7 shell之流程控制

把昨天的续上 五、变量置换 命令替换 adate %m%d a$(date %m%d) 反引号亦可用$() 代替 变量替换 一 ${parameter:-word} 若 parameter 为空或未设置&#xff0c;则用 word 代替 parameter 进行替换&#xff0c;parameter 的值不变 # a1 # unset b # a${b:-3} # echo $a 3 #…

SSH配置公钥私钥免密登录——windows to linux

SSH配置公钥私钥免密登录——windows to linux SSH的安全机制一、修改远程主机ssh设置二、在windows客户端生成公钥私钥文件三、将客户端公钥追加到远程主机 .ssh/authorized_keys中参考链接 SSH的安全机制 SSH之所以能够保证安全&#xff0c;原因在于它采用了非对称加密技术(…

【网安小白成长之路】2.PHP与MySQL交互

&#x1f42e;博主syst1m 带你 acquire knowledge&#xff01; ✨博客首页——syst1m的博客&#x1f498; &#x1f51e; 《网安小白成长之路(我要变成大佬&#x1f60e;&#xff01;&#xff01;)》真实小白学习历程&#xff0c;手把手带你一起从入门到入狱&#x1f6ad; &…

力扣Lc22--- 459. 重复的子字符串(java版)-2024年3月27日

1.题目描述 2.知识点 &#xff08;1&#xff09; 在Java中&#xff0c;.repeat(i) 是一个字符串方法&#xff0c;用于将原始字符串重复 i 次。 例如&#xff0c;对于字符串 “ab”&#xff0c;使用 .repeat(3) 将会返回 “ababab”。 public class RepeatExample {public s…

区块链技术与大数据结合的商业模式探索

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验&#xff01;希望我的分享能帮助到您&#xff01;如需帮助可以评论关注私信我们一起探讨&#xff01;致敬感谢感恩&#xff01; 随着区块链技术和大数据技术的不断发展&#xff0c;两者的结合为企业带来了新的商业模式…

WordPress建站:打造您的网站的绝佳选择

前不久&#xff0c;我们遇到一些Hostease客户咨询如何可以快速搭建网站。我们通常推荐客户使用wordpress建站。WordPress建站是指利用WordPress这套免费开源的建站系统来构建网站。类比于电脑软件&#xff0c;安装WordPress后即可轻松搭建网站&#xff0c;其优势不言而喻。 SEO…

DBeaver修改sql语句保存位置

1、dbeaver通过工作空间方式来管理Script的sql脚本以及数据库连接。 工作空间&#xff0c;其实也就是一个文件夹 默认保存路径查看&#xff1a; 文件--> 切换工作空间 --> 其他 sql脚本的保存位置默认在工作空间下的 \General\Scripts 文件夹中。 2、 3、点击浏览&#…

HTML(三)---【列表、表格、块元素、行元素的使用】

零.前言 本文主要介绍列表、表格、块内元素、行内元素。 前置知识及常见标签使用&#xff0c;请见前章&#xff1a; HTML&#xff08;一&#xff09;---【基础】-CSDN博客 HTML&#xff08;二&#xff09;---【常见的标签使用】-CSDN博客 一.<li>表内列表项 1.定义…

C语言例4-14:从键盘输入小写字母转换成大写字母并输出。

代码如下&#xff1a; //从键盘输入小写字母转换成大写字母并输出。 #include<stdio.h> int main(void) {char c1,c2;printf("输入小写字母&#xff1a; \n");c1 getchar(); //从键盘输入一个字符putchar(c1);printf(",%d\n",c1);c2 c1-32; …

Java智慧工地源码 智慧工地的价值体现 开发一套智慧工地系统需要多少钱

智慧工地是智慧地球理念在工程领域的行业具现&#xff0c;是一种崭新的工程全生命周期管理理念。它运用信息化手段&#xff0c;通过三维设计平台对工程项目进行精确设计和施工模拟&#xff0c;围绕施工过程管理&#xff0c;建立互联协同、智能生产、科学管理的施工项目信息化生…

【射频连接器】RF Jack Plug Female Male Socket Pin

SMA Jack Female (Socket) SMA Plug Male (Pin) 总结&#xff1a; 中间是针的plug插头&#xff1b; 中间是孔的jack 插座&#xff1b;以上是一般的正常逻辑&#xff1b; 你说有没有 Jack Male &#xff1f;Plug Female? 嗯&#xff1f; 有的 Jack Male Plug Female

力扣面试150 删除有序数组中的重复项 双指针

Problem: 26. 删除有序数组中的重复项 思路 &#x1f469;‍&#x1f3eb; 三叶题解 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( 1 ) O(1) O(1) Code class Solution {public int removeDuplicates(int[] nums) {int j 0, n nums.length;for(int i 0;…

【数学】 【分数】 【字符串】972. 相等的有理数

本文涉及知识点 数学 分数 字符串 LeetCode972. 相等的有理数 给定两个字符串 s 和 t &#xff0c;每个字符串代表一个非负有理数&#xff0c;只有当它们表示相同的数字时才返回 true 。字符串中可以使用括号来表示有理数的重复部分。 有理数 最多可以用三个部分来表示&…

后端代码1

// 新增 public JsonResultVo<?> create(ApiIgnore RequestAttribute(ConstVal.REQ_USER) BaseUser baseUser,RequestBody IUTradeBuyPreserveVo iuTradeBuyPreserveVo) {//权限判断if (!baseCompanyService.dataPermission(baseUser, iuTradeBuyPreserveVo.getCompanyi…

JavaScript、ES6与微信小程序之间的联系:工具箱、升级与新房子

JavaScript、ES6和微信小程序三者之间有什么联系&#xff1f;我想&#xff0c;作为初学者还是有点蒙。下面作一个简单的分析&#xff0c;供大家参考。 首先,我们可以把JavaScript想象成一个非常强大的工具箱,里面装满了各种各样的工具。这些工具可以帮助我们完成各种任务,比如…