题意

有一个n个节点的无向图,结点编号从0-n-1,每条边的长度时1to9的一个正整数。现在要删除一些边(或者不删),使得到的新图满足下面两个要求。

1.
新图是一颗树有n-1条边
2.
对于每个结点v(0ton-1)从0到v的距离要等于原图上从0到v的最短路

现在计算有多少种不同的图满足上面两个条件

分析

统计每个点可以到达最短路的入度值,然后相乘。这个题因为spfa写错了调了老久···

 #include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <queue> using namespace std;
const int INF=;
const int maxn=;
const int MOD=;
int n;
char g[maxn][maxn];
int G[maxn][maxn];
int d[maxn],vis[maxn];
long long in[maxn];
long long ans;
void spfa(){
memset(vis,,sizeof(vis));
for(int i=;i<=n;i++)d[i]=INF;
queue<int>q;
q.push();vis[]=;
d[]=;
while(!q.empty()){
int u=q.front();q.pop();
vis[u]=;
for(int i=;i<n;i++){
if(G[u][i]){
if(d[i]>=d[u]+G[u][i]){
d[i]=d[u]+G[u][i];
if(!vis[i]){
vis[i]=;
q.push(i);
}
}
}
}
}
return;
}
int main(){
while(scanf("%d",&n)!=EOF){
memset(G,,sizeof(G));
for(int i=;i<n;i++){
for(int j=;j<n;j++){
scanf(" %c",&g[i][j]);
}
}
for(int i=;i<n;i++){
for(int j=;j<n;j++){
G[i][j]=g[i][j]-'';
}
}
spfa();
memset(in,,sizeof(in));
for(int i=;i<n;i++){
for(int j=;j<n;j++){
if(i!=j){
if(G[i][j]&&d[j]==d[i]+G[i][j]){
in[j]++;
}
}
}
}
ans=;
for(int i=;i<n;i++){
if(in[i])
ans=(ans%MOD*in[i]%MOD)%MOD;
}
printf("%lld\n",ans);
}
return ;
}

最新文章

  1. PHP+MySQL+Easyui tree菜单从后台加载json数据(一)
  2. C#小程序呢飞行棋设计分析
  3. Socurce Insight 快捷键
  4. Web Notification
  5. Installshield关于.NET安装时需要重启动的处理办法,以及延伸出的重启后继续安装的安装包的一点想法
  6. Objective-C中关于请求返回NSData数据解析成NSDictionary或NSArray的方法
  7. JS跨域代码
  8. BZOJ 1033: [ZJOI2008]杀蚂蚁antbuster(模拟)
  9. 如何用JavaScript复制到剪贴板
  10. HDU1423 LCIS
  11. &lt;自动化测试方案_1&gt;第一章、为什么要做自动化测试?(Why)
  12. TensorFlow相关
  13. 线程同步-使用SimaphoreSlim类
  14. Centos6.5部署Sonar6.7.1备注
  15. k8s学习笔记之八:存储卷
  16. python 网络编程 缓冲和粘包
  17. vue2.0 axios交互
  18. httppost core net
  19. 【游记】CCHO TY国初划水记
  20. 批量得到/修改word超链接

热门文章

  1. shfileoperation 删除文件 FileDelete(CString strName)
  2. bzoj 2657 旅游
  3. 解决 Flask-sqlalchemy 中文乱码
  4. AES前后加密算法代码
  5. COGS 2259 异化多肽——生成函数+多项式求逆
  6. Mac eclipse 连接 手机调试
  7. 转: 使用Jmeter创建ActiveMQ JMS POINT TO POINT请求,环境搭建、请求创建、插件安装、监听服务器资源等
  8. 让maven生成可运行jar包
  9. Java 数组的浅拷贝和深拷贝
  10. DHCP(三)