hdu 6026 Deleting Edges(最短路计数)
题目链接: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(最短路计数)相关推荐
- BZOJ1491: [NOI2007]社交网络(Floyd 最短路计数)
Time Limit: 10 Sec Memory Limit: 64 MB Submit: 2343 Solved: 1266 [Submit][Status][Discuss] Descrip ...
- 1491. [NOI2007]社交网络【最短路计数】
Description 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题. 在一个社交圈子里有n个人,人与人之间有不同程度的关系.我们将这 ...
- 2018.11.05 NOIP模拟 规避(最短路计数)
传送门 正难则反. 考虑计算两人相遇的方案数. 先正反跑一遍最短路计数. 然后对于一条在最短路上的边(u,v)(u,v)(u,v),如果(dis(s,u)*2<total&&di ...
- nssl1338-逃亡路径【最短路计数,bfs】
正题 题目大意 n∗mn*mn∗m的格子,一个走"日"字形的马,从(1,1)(1,1)(1,1)走到(n,m)(n,m)(n,m)的最短路条数. 解题思路 模板最短路计数改一下即可 ...
- [图论]最短路计数(spfa)
最短路计数 Description 给出一个NN个顶点MM条边的无向无权图,顶点编号为1-N1−N.问从顶点11开始,到其他每个点的最短路有几条. Input 第一行包含22个正整数N,MN,M,为图 ...
- 洛谷 1144 最短路计数 bfs
洛谷1144 最短路计数 传送门 其实这道题目的正解应该是spfa里面加一些处理,,然而,,然而,,既然它是无权图,,那么就直接bfs了,用一个cnt记录一下每一个点的方案数,分几种情况讨论一下转移, ...
- 最短路——最短路计数(spfa)
题目链接 最短路--最短路计数(spfa) 题目描述 给出一个 N 个顶点 M 条边的无向无权图,顶点编号为 1-N.问从顶点 1 开始,到其他每个点的最短路有几条. 输入格式 第一行包含 2 个正整 ...
- 【洛谷1144】最短路计数 最短路
最短路计数 题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M,为图的顶点数与边数. ...
- 最短路及最短路计数(SPFA)
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> ...
最新文章
- 【怎样写代码】实现对象的复用 -- 享元模式(三):享元模式
- AI算法起家的今日头条为何败给了色情?一文告诉你机器学习何以搞不定鉴黄
- 为啥我的页面模板的from提交不了数据_小程序,组件与模板对比,及其简单使用
- 李飞飞高徒:斯坦福如何打造基于视觉的智能医院?
- NeurIPS 2021论文接收结果统计:Oral级论文不足3%,图神经网络火到进前三
- 047_Divider分割线
- 常见的面向对象的面试题(附答案)
- 如何给按钮加上链接功能
- C++中构造函数和析构函数的调用顺序
- linux终端窗口玩法
- JVM源码阅读-Dalvik类的加载
- 教师计算机校本培训记录,信息技术教师个人校本培训总结
- 关于Python的应用发布技术
- 服务器怎么开账号,大芒果服务器怎么创建GM账号?
- docker-nividia run 报错
- 2023年五一数学建模 | 第二十届五一数学建模B题:快递需求分析问题思路
- ARP协议(三)ARP防御篇
- 每日一词20190318——图像金字塔(image pyramid)
- 助力零售业降本增效,零售业相关场景RPA应用
- WGCNA分析基本教程总结
热门文章
- android无感刷新下拉分页,GitHub - TakWolf/Android-RefreshAndLoadMore-Demo: 一种简单的并且优雅的方式实现下拉刷新和加载更多的分页效果。...
- 单独安装想要的office_安装OFFICE不再求人,最省心的方法
- 16.Python略有小成(内置模块Ⅱ)
- 基于visual Studio2013解决C语言竞赛题之0304整除数
- linux命令 scp
- 什么是Ext(ExtJs)【转载】
- 高德地图-2D地图下区域遮掩(只显示固定区域里的内容)
- vscode 配置 路径别名 @
- 远程桌面无法连接服务器,启动Terminal Services 服务报1053错误
- 开发服务器 VSS开发库 自动备份方案