1486:黑暗城堡 [题目描述] 知道黑暗城堡有 N 个房间,M 条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设 Di为如果所有的通道都被修建,第 i 号房间与第 1 号房间的最短路径长度: 而 Si 为实际修建的树形城堡中第 i 号房间与第 1 号房间的路径长度: 要求对于所有整数 i(1≤i≤N),有 Si=Di 成立. 你想知道有多少种不同的城堡修建方案.当然,你只需要输出答案对 231−1 取模之后的结果就行了. [输入] 第一行为两个由空格隔开的整数…
求出最短树,用乘法原理统计答案就行了(模拟prim过程). 不知道说什么了,直接上代码: 1 #include<cstring> 2 #include<iostream> 3 #include<algorithm> 4 #define ll long long 5 using namespace std; 6 const int N=1006; 7 const ll P=(1ll<<31)-1; 8 int n,m,a[N][N],d[N]; 9 bool…
题库 :一本通 题号 :1486 题目 :黑暗城堡 link :http://ybt.ssoier.cn:8088/problem_show.php?pid=1486 思路 :这道题既然要求使加入生成树中的点到1号节点的距离最小,那么我们可以理解为题目要求一个最短路径生成树,那么我们可以从1号节点向每个节点跑一遍SPFA最短路,并记录下来.这道题中如果满足两个点i,j && dis[i] = dis[j] + f[i][j](dis[i]表示第i个点到1号节点的最短距离,f[i][j]表示…
LOJ#10064. 「一本通 3.1 例 1」黑暗城堡 题目描述 你知道黑暗城堡有$N$个房间,$M$条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设$D_i$为如果所有的通道都被修建,第$i$号房间与第$1$号房间的最短路径长度: 而$S_i$为实际修建的树形城堡中第$i$号房间与第$1$号房间的路径长度: 要求对于所有整数$i(1\le i\le N)$,有$S_i= D_i$成立. 你想知道有多少种不同的城堡修建方案.当然,你只需要输出答案对$2^{31}…
#10064. 「一本通 3.1 例 1」黑暗城堡 内存限制:512 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统    评测方式:文本比较 上传者: 1bentong 提交    提交记录    统计    讨论    测试数据   题目描述 你知道黑暗城堡有 N 个房间,M 条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设 Di 为如果所有的通道都被修建,第 i 号房间与第 1 号房间的最短路径长度: 而 Si​​ 为实际修建的树形城堡中第 …
Description 在顺利攻破 Lord lsp 的防线之后,lqr 一行人来到了 Lord lsp 的城堡下方.Lord lsp 黑化之后虽然拥有了强大的超能力,能够用意念力制造建筑物,但是智商水平却没怎么增加.现在 lqr 已经搞清楚黑暗城堡有 N 个房间,M 条可以制造的双向通道,以及每条通道的长度.lqr 深知 Lord lsp 的想法,为了避免每次都要琢磨两个房间之间的最短路径, Lord lsp一定会把城堡修建成树形的:但是,为了尽量提高自己的移动效率,Lord lsp 一定会使…
「CH6202」黑暗城堡 传送门 这道题是要让我们求以点 \(1\) 为源点的最短路树的方案数. 我们先跑一遍最短路,然后考虑类似 \(\text{Prim}\) 的过程. 当我们把点 \(x\) 加入当前的生成树 \(T\) 中时,对于 \(\forall p \in T\) ,满足 \(dis_p = dis_x + (x, p)\) 那么就可以把这两个点相连,根据乘法原理,我们把每一步的方案数相乘就是最终的答案. 参考代码: #include <algorithm> #include &…
题目大意:定义一个无向图的最短路径生成树如下:在该无向图的生成树中,任意一个节点到根节点的距离均等于根节点到该节点的最短路.求有多少种最短路径生成树. 题解:首先跑一遍 dij 求出从根节点到每个节点的最短路,再跑 prim,模拟该生成树生成的过程,即:维护最短路径生成树集合,对于每个新加入生成树集合的点,对与其相邻的且不在生成树中的点进行判断,若满足 \(d[u]+e[i].to==d[v]\) 则 v 的可能情况加一.最后利用乘法原理统计答案即可. 代码如下 #include <bits/s…
因为D[i]表示i号节点到1号节点的最短路径,所以可以先以1为源点跑一边SPFA,预处理出每个点到1号节点的最短路.之后开始考虑所谓的“最短路径生成树”,在这棵生成树中有以下性质:当fa[i]==node时,必满足dist[node]+w(node,i)=dist[i],但是dist[node]+w(node,i)==dist[i]时,node不一定是i的父节点,因为图的最短路可能有多条.因此我们记录mul[i]为i的前驱个数,也就是所有满足dist[k]+w(k,i)==dist[i]的点的个…
黑暗城堡 题目描述 你知道黑暗城堡有\(N\)个房间,M 条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设\(D_i\)为如果所有的通道都被修建,第i号房间与第1号房间的最短路径长度: 而\(S_i\)为实际修建的树形城堡中第i号房间与第1号房间的路径长度: 要求对于所有整数\(i(1<= i <= N)\),有\(S_i = D_i\)成立. 你想知道有多少种不同的城堡修建方案.当然,你只需要输出答案对\(2 ^ {31} - 1\)取模之后的结果就行了. 输…