题目链接:hdu 6026 Deleting Edges

题意:

给你n个点,和一个邻接矩阵,非0表示有边,0表示没边。

现在让你删一些边,构成一棵树,使得每个点到0这个点的距离为没删边之前的最短路。

问有多少棵这样的树。

题解:

首先,题意说从0点开始对每个点都最短路,那么用单源最短路就能搞定。

如何来计数呢?

对于每一个点,我们记录能到底这点的最短路的条数,那么能够成题目要求的那种树的数量就是

ans=cnt[1]*cnt[2]*...*cnt[n-1]。

 1 #include<cstdio>
 2 #define F(i,a,b) for(int i=a;i<=b;i++)
 3 using namespace std;
 4 typedef long long ll;
 5
 6 const int N=55,inf=1e9+7;
 7 int n,cnt[N],inq[N],dis[N],Q[1000];
 8 char mp[N][N];
 9
10 void spfa()
11 {
12     F(i,1,n)dis[i]=inf,inq[i]=0,cnt[i]=0;
13     int head=0,tail=0;
14     inq[0]=1,Q[0]=0;
15     while(head!=tail+1)
16     {
17         int x=Q[head++];
18         inq[x]=0;
19         F(v,1,n-1)if(mp[x][v]!='0')
20         {
21             if(dis[v]>dis[x]+mp[x][v]-'0')
22             {
23                 cnt[v]=1;
24                 dis[v]=dis[x]+mp[x][v]-'0';
25                 if(inq[v]==0)Q[++tail]=v,inq[v]=1;
26             }else if(dis[v]==dis[x]+mp[x][v]-'0')cnt[v]++;
27         }
28     }
29 }
30
31 int main()
32 {
33     while(~scanf("%d",&n))
34     {
35         F(i,0,n-1)scanf("%s",mp[i]);
36         spfa();
37         ll ans=1;
38         F(i,1,n-1)ans=ans*cnt[i]%inf;
39         printf("%lld\n",ans);
40     }
41     return 0;
42 }

View Code

转载于:https://www.cnblogs.com/bin-gege/p/6873717.html

hdu 6026 Deleting Edges(最短路计数)相关推荐

  1. BZOJ1491: [NOI2007]社交网络(Floyd 最短路计数)

    Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 2343  Solved: 1266 [Submit][Status][Discuss] Descrip ...

  2. 1491. [NOI2007]社交网络【最短路计数】

    Description 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题. 在一个社交圈子里有n个人,人与人之间有不同程度的关系.我们将这 ...

  3. 2018.11.05 NOIP模拟 规避(最短路计数)

    传送门 正难则反. 考虑计算两人相遇的方案数. 先正反跑一遍最短路计数. 然后对于一条在最短路上的边(u,v)(u,v)(u,v),如果(dis(s,u)*2<total&&di ...

  4. nssl1338-逃亡路径【最短路计数,bfs】

    正题 题目大意 n∗mn*mn∗m的格子,一个走"日"字形的马,从(1,1)(1,1)(1,1)走到(n,m)(n,m)(n,m)的最短路条数. 解题思路 模板最短路计数改一下即可 ...

  5. [图论]最短路计数(spfa)

    最短路计数 Description 给出一个NN个顶点MM条边的无向无权图,顶点编号为1-N1−N.问从顶点11开始,到其他每个点的最短路有几条. Input 第一行包含22个正整数N,MN,M,为图 ...

  6. 洛谷 1144 最短路计数 bfs

    洛谷1144 最短路计数 传送门 其实这道题目的正解应该是spfa里面加一些处理,,然而,,然而,,既然它是无权图,,那么就直接bfs了,用一个cnt记录一下每一个点的方案数,分几种情况讨论一下转移, ...

  7. 最短路——最短路计数(spfa)

    题目链接 最短路--最短路计数(spfa) 题目描述 给出一个 N 个顶点 M 条边的无向无权图,顶点编号为 1-N.问从顶点 1 开始,到其他每个点的最短路有几条. 输入格式 第一行包含 2 个正整 ...

  8. 【洛谷1144】最短路计数 最短路

    最短路计数 题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M,为图的顶点数与边数. ...

  9. 最短路及最短路计数(SPFA)

    #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> ...

最新文章

  1. 【怎样写代码】实现对象的复用 -- 享元模式(三):享元模式
  2. AI算法起家的今日头条为何败给了色情?一文告诉你机器学习何以搞不定鉴黄
  3. 为啥我的页面模板的from提交不了数据_小程序,组件与模板对比,及其简单使用
  4. 李飞飞高徒:斯坦福如何打造基于视觉的智能医院?
  5. NeurIPS 2021论文接收结果统计:Oral级论文不足3%,图神经网络火到进前三
  6. 047_Divider分割线
  7. 常见的面向对象的面试题(附答案)
  8. 如何给按钮加上链接功能
  9. C++中构造函数和析构函数的调用顺序
  10. linux终端窗口玩法
  11. JVM源码阅读-Dalvik类的加载
  12. 教师计算机校本培训记录,信息技术教师个人校本培训总结
  13. 关于Python的应用发布技术
  14. 服务器怎么开账号,大芒果服务器怎么创建GM账号?
  15. docker-nividia run 报错
  16. 2023年五一数学建模 | 第二十届五一数学建模B题:快递需求分析问题思路
  17. ARP协议(三)ARP防御篇
  18. 每日一词20190318——图像金字塔(image pyramid)
  19. 助力零售业降本增效,零售业相关场景RPA应用
  20. WGCNA分析基本教程总结

热门文章

  1. android无感刷新下拉分页,GitHub - TakWolf/Android-RefreshAndLoadMore-Demo: 一种简单的并且优雅的方式实现下拉刷新和加载更多的分页效果。...
  2. 单独安装想要的office_安装OFFICE不再求人,最省心的方法
  3. 16.Python略有小成(内置模块Ⅱ)
  4. 基于visual Studio2013解决C语言竞赛题之0304整除数
  5. linux命令 scp
  6. 什么是Ext(ExtJs)【转载】
  7. 高德地图-2D地图下区域遮掩(只显示固定区域里的内容)
  8. vscode 配置 路径别名 @
  9. 远程桌面无法连接服务器,启动Terminal Services 服务报1053错误
  10. 开发服务器 VSS开发库 自动备份方案