最短路计数

news2024/11/27 8:30:41

 题意:求1号点到每个点的最短路径的条数

分析:模板题,但要保证求的顺序是拓扑序,如果遇到的点的距离大于当前被更新点的距离就覆盖这个点之前的数据(比如如果先通过3-->2-->4,后来发现了另一条路3-->4),因为之前的数据不是最短路,如果准备走到的点已经有的距离是当前点的距离加1(假如原本已经有了1->3->4->6,d[6]=3,现在又发现了一条路1->3->5-6,  因为d[6]=3,现在是从5号点准备走到6号点,且d[5]+1=d[6],那么就直接更新cnt[6]=cnt[5]+cnt[6]),那么就说明这条路经也是最短路。

 

 

#include<bits/stdc++.h>


using namespace std;

const int N = 4e5+10,mod=100003;
int h[N],e[N],ne[N],idx;
int cnt[N];
int n,m;
int d[N];


void add(int a,int b)
{
    e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
void bfs()
{
    memset(d,0x3f,sizeof d);
    d[1]=0;
    cnt[1]=1;
    queue<int> q;
    q.push(1);
    while(q.size())
    {
        auto t=q.front();
        q.pop();
        
        for(int i=h[t];~i;i=ne[i])
        {
            int j=e[i];
            if(d[j]>d[t]+1)//不是最短路径时候,更新一下
            {
                d[j]=d[t]+1;
                cnt[j]=cnt[t];
                q.push(j);
            }
            else if(d[j]==d[t]+1)//当前点是最短路径
            {
                cnt[j]=(cnt[j]+cnt[t])%mod;
            }
        }
    }
}

int main()
{
    cin>>n>>m;
    memset(h,-1,sizeof h);
    while(m--)
    {
        int a,b;
        cin>>a>>b;
        add(a,b);
        add(b,a);
    }
    
    bfs();
    
    for(int i=1;i<=n;i++) cout<<cnt[i]<<endl;
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件设计师(一)计算机系统知识

一、计算机系统基础知识 1、计算机系统硬件基本组成 基本硬件系统由运算器、控制器、存储器、输入设备和输出设备5大部件组成。 组成说明运算器、控制器集成在一起统称为中央处理单元&#xff08;CPU&#xff09;。CPU是硬件系统的核心&#xff0c;用于数据的加工处理存储器…

企业数字化的本质是什么?企业数字化建设应该怎么做?

近年前&#xff0c;无论哪个领域数字化都成为一种必选项&#xff0c;任何行业都可以用数字化的手段重新做一遍&#xff0c;但其本质含义就是基于一种数字化手段、数字化的工具再造企业&#xff0c;用新的数字化的思维手段来重新赋能业务。 企业数字化本质是技术与体系的联合&a…

IP-GUARD授权库勾选“不跟踪另存为”的效果

容灾时间过期如何申请延长? 有以下几种方式可以在已经超过容灾时间后,让客户端正常使用加密: 1、直接从控制台设置好容灾时间或者长期离线授权,右键客户端导出策略,然后从客户端c:\windows,调出policyimporttool.exe,导入策略即可。 2、直接在控制台设置好长期离线授权…

F#奇妙游(12):并行编程与π

核越多&#xff0c;越快乐 多核CPU对于计算机程序的开发带来了很大的挑战&#xff0c;但是也带来了很大的机遇。在多核CPU上&#xff0c;程序的性能可以通过并行化来提升&#xff0c;但是并行化的难度也随之提升。本文将介绍多核CPU的基本概念&#xff0c;以及如何在多核CPU上…

【分布式任务调度】XXL-JOB调度中心对执行器的上下线感知实现原理(三)

文章目录 1. 前言2. 调度关系3. 执行器注册3.1. 调度中心处理注册请求3.2. 执行器发起注册请求 4. 执行器注销4.1.主动注销4.2. 被动注销 5.流程图6. 总结 1. 前言 XXL-JOB专题历史文章列表&#xff1a; XXL-JOB调度中心集群部署配置&#xff08;一&#xff09;XXL-JOB执行器…

官宣!Databend Cloud 和青云科技达成合作

近日&#xff0c;北京数变科技有限公司与北京青云科技股份有限公司(以下简称&#xff1a;青云科技 &#xff09;顺利完成了产品兼容性适配互认证。本次测试是对 Databend 云原生数据仓库系统与青云科技公司自主研发的 QingStor U10000 进行严格的联合测试验证。测试结果显示&am…

数字 IC 设计职位经典笔/面试题(二)

共100道经典笔试、面试题目&#xff08;文末可全领&#xff09; FPGA 中可以综合实现为 RAM/ROM/CAM 的三种资源及其注意事项&#xff1f; 三种资源&#xff1a;BLOCK RAM&#xff0c;触发器&#xff08;FF&#xff09;&#xff0c;查找表&#xff08;LUT&#xff09;&#xf…

CAS机制详解

一、是什么 CAS&#xff0c;是Compare and Swap的简称&#xff0c;实现并发算法是常用到的一种技术&#xff0c;在这个机制中有三个核心的参数。 主内存中存放的共享变量的值&#xff1a;V&#xff08;一般情况下这个V是内存的地址值&#xff0c;通过这个地址可以获得内存中的…

mysql数值函数

1. ceil() 向上取整 2. floor() 向下取整 3. mod() 取余 4. rand() 生成0-1之间的随机数 5. round(x&#xff0c;y) x 四舍五入&#xff0c;保留 y 位小数

【Spring core学习三】对象装配:获取Bean对象的四种方式

目录 对象装配的四种方式 &#x1f337;1、Autowired属性注入&#xff08;使用最多&#xff09; &#x1f337;2、Setter注入 &#x1f337;3、构造函数注入 &#x1f337;4、Resource&#xff1a;另⼀种注⼊关键字 对象装配的四种方式 对象装配&#xff1a;获取bean对象也…

2、用phpMyAdmin修改mysql的密码

用phpMyAdmin登录mysql服务器&#xff0c;默认的用户名密码为 Username: root Password: [null] 在账户中修改密码

8.分布式存储

文章目录 分布式存储存储基础单机存储设备单机存储的问题分布式存储&#xff08;软件定义的存储 SDS&#xff09;分布式存储的数据类型总结 CephCeph概念Ceph优势Ceph架构Ceph核心组件OSD 存储后端Ceph 数据的存储过程Ceph 版本发行生命周期Ceph 集群部署Ceph 生产环境推荐&…

虚拟机磁盘扩容

工作中已经不止一次碰到虚机扩容了&#xff0c;所以一定要切记&#xff1a;给虚机多分配些容量&#xff01;&#xff01; 方法其实就是现在物理机上给磁盘扩容&#xff0c;然后再跑到虚拟机内部进行lvm卷扩容&#xff0c;具体的原理到去看LVM底层&#xff0c;总体就是LV->V…

我做了10年的测试,由衷的建议年轻人别入这行了...

两天前&#xff0c;有个做功能测试7年的同事被裁员了。这位老哥已经做到了团队中的骨干了&#xff0c;人又踏实&#xff0c;结果没想到刚刚踏入互联网“老龄化”大关&#xff0c;就被公司给无情优化了。 现在他想找同类型的工作&#xff0c;薪资也一直被压&#xff0c;考虑转行…

leetcode-541. 反转字符串 II

leetcode-541. 反转字符串 II 文章目录 leetcode-541. 反转字符串 II一.题目描述二.第1次提交(for循环&#xff0c;std::reverse)三.第2次提交四.第3次提交五.第4次提交六.代码随想录解答一七.代码随想录解答二八.代码随想录解答三 一.题目描述 二.第1次提交(for循环&#xff0…

安达发|APS排程系统能帮医药行业实现哪些目标

高级发展规划和调度aps &#xff08;advanced planning and scheduling&#xff09;是一个国家基于中国整个社会企业进行生产经营活动的计算机信息系统。通过aps的管理手段和信息&#xff0c;企业可以优化从产品产量的决定到最终产品管理的所有生产过程。利用实时&#xff0c;准…

10大功能特性,助力开发者玩转华为云API Explorer

伴随着我国API生态逐渐成熟、市场发展不断完善&#xff0c;API已广泛应用在以网页、移动应用、后端系统集成为主的众多开发场景中。同时&#xff0c;开发者对API的主要诉求已由获取数据能力转变为获取技术能力、甚至业务能力&#xff0c;开发者渴望更加高效便捷的调用方式&…

CRMEB商城系统授权与不授权有什么区别

现在&#xff0c;很多时候我们都会听到“授权”这个词&#xff0c;在CRMEB的商城系统产品中&#xff0c;商业授权也是一个重要环节&#xff0c;今天&#xff0c;我们就来了解一下关于CRMEB商城系统授权的那些事儿。 一、为什么要进行商业授权&#xff1f; 正版商业授权是对用户…

MVVM 实现记录文本

1. MVVM 框架说明: Model - 数据层 View - 视图层 ViewModel - 管理模型的视图 2. 资源文件 2.1 启动图标: AppIconhttps://img-blog.csdnimg.cn/8fa1031489f544ef9757b6b3ab0eddbe.png 2.2 Display Name: Do Stuff 2.2 颜色图: 2.3 项目结构图: 3. Model 层实现&a…