[LOJ#10064]黑暗城堡】的更多相关文章

Description 在顺利攻破 Lord lsp 的防线之后,lqr 一行人来到了 Lord lsp 的城堡下方.Lord lsp 黑化之后虽然拥有了强大的超能力,能够用意念力制造建筑物,但是智商水平却没怎么增加.现在 lqr 已经搞清楚黑暗城堡有 N 个房间,M 条可以制造的双向通道,以及每条通道的长度.lqr 深知 Lord lsp 的想法,为了避免每次都要琢磨两个房间之间的最短路径, Lord lsp一定会把城堡修建成树形的:但是,为了尽量提高自己的移动效率,Lord lsp 一定会使…
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}…
黑暗城堡 题目描述 你知道黑暗城堡有\(N\)个房间,M 条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设\(D_i\)为如果所有的通道都被修建,第i号房间与第1号房间的最短路径长度: 而\(S_i\)为实际修建的树形城堡中第i号房间与第1号房间的路径长度: 要求对于所有整数\(i(1<= i <= N)\),有\(S_i = D_i\)成立. 你想知道有多少种不同的城堡修建方案.当然,你只需要输出答案对\(2 ^ {31} - 1\)取模之后的结果就行了. 输…
#10064. 「一本通 3.1 例 1」黑暗城堡 内存限制:512 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统    评测方式:文本比较 上传者: 1bentong 提交    提交记录    统计    讨论    测试数据   题目描述 你知道黑暗城堡有 N 个房间,M 条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设 Di 为如果所有的通道都被修建,第 i 号房间与第 1 号房间的最短路径长度: 而 Si​​ 为实际修建的树形城堡中第 …
题库 :一本通 题号 :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]表示…
「CH6202」黑暗城堡 传送门 这道题是要让我们求以点 \(1\) 为源点的最短路树的方案数. 我们先跑一遍最短路,然后考虑类似 \(\text{Prim}\) 的过程. 当我们把点 \(x\) 加入当前的生成树 \(T\) 中时,对于 \(\forall p \in T\) ,满足 \(dis_p = dis_x + (x, p)\) 那么就可以把这两个点相连,根据乘法原理,我们把每一步的方案数相乘就是最终的答案. 参考代码: #include <algorithm> #include &…
1486:黑暗城堡 [题目描述] 知道黑暗城堡有 N 个房间,M 条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设 Di为如果所有的通道都被修建,第 i 号房间与第 1 号房间的最短路径长度: 而 Si 为实际修建的树形城堡中第 i 号房间与第 1 号房间的路径长度: 要求对于所有整数 i(1≤i≤N),有 Si=Di 成立. 你想知道有多少种不同的城堡修建方案.当然,你只需要输出答案对 231−1 取模之后的结果就行了. [输入] 第一行为两个由空格隔开的整数…
题目描述你知道黑暗城堡有 N 个房间,M 条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设 Di​ 为如果所有的通道都被修建,第 i 号房间与第 1 号房间的最短路径长度: 而 Si​ 为实际修建的树形城堡中第 i 号房间与第 1 号房间的路径长度: 要求对于所有整数 i (1≤i≤N),有 Si​=Di​ 成立. 你想知道有多少种不同的城堡修建方案.当然,你只需要输出答案对 2^{31} -1 取模之后的结果就行了. 输入格式第一行为两个由空格隔开的整数 N,…
题目大意:定义一个无向图的最短路径生成树如下:在该无向图的生成树中,任意一个节点到根节点的距离均等于根节点到该节点的最短路.求有多少种最短路径生成树. 题解:首先跑一遍 dij 求出从根节点到每个节点的最短路,再跑 prim,模拟该生成树生成的过程,即:维护最短路径生成树集合,对于每个新加入生成树集合的点,对与其相邻的且不在生成树中的点进行判断,若满足 \(d[u]+e[i].to==d[v]\) 则 v 的可能情况加一.最后利用乘法原理统计答案即可. 代码如下 #include <bits/s…
传送门 思路: 先求出各个点到 1 的最短路径.分别用两个数组将最短路径记录下来(一个要用来排序).按排序后的 dis 值从小到大枚举各点加入树有多少种方案,最后根据乘法原理把各个点的方案数乘起来就是答案.(实现起来会比较繁琐) Code: #include<iostream> #include<cstdio> #include<algorithm> #include<set> #include<cstring> #include<stri…