如果没有负权边,就从路径长度单调递增上考虑问题。

跑完最短路后,让点根据离1的距离排个序。这样就可以统一顺序,后面的点一定是接在前面的点后面。

最小路径生成树上增加一个点实际上跟他具体形状没有任何关系,直接暴力判断能不能贴在前面的点后面就行。而且把这个点贴在哪里(所有合法的位置)都是无所谓的。

注意路径的初始化成INF!

#include <bits/stdc++.h>
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define repp(i,a,b) for(int i=(a);i<(b);i++)
#define lep(i,a,b) for(int i=(a);i>=(b);i--)
#define lepp(i,a,b) for(int i=(a);i>(b);i--)
#define pii pair<int,int>
#define pll pair<long long,long long>
#define mp make_pair
#define All(x) x.begin(),x.end()
#define ms(a,b) memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
#define INFF 0x3f3f3f3f3f3f3f3f
#define multi int T;scanf("%d",&T);while(T--)
using namespace std;
typedef long long ll;
typedef double db;
const int N=1e3+5;
const ll mod=(1LL<<31)-1;
const db eps=1e-6;
const db pi=acos(-1.0);
int vis[N],dis[N],n,m,tr[N][N],gr[N];
bool cmp(const int &i,const int &j){return dis[i]<dis[j];
}
int main(){#ifndef ONLINE_JUDGEfreopen("D:\\work\\data.in","r",stdin);#endifms(tr,INF);//不要忘了初始化cin>>n>>m;rep(i,1,m){int u,v,w;cin>>u>>v>>w;tr[u][v]=tr[v][u]=w;}ms(dis,INF);dis[1]=0;priority_queue<pii>q;q.push(mp(0,1));while(q.size()){int cur=q.top().second;q.pop();if(vis[cur]) continue;vis[cur]=1;rep(i,1,n){if(vis[i]==0&&tr[cur][i]+dis[cur]<dis[i]){dis[i]=tr[cur][i]+dis[cur];q.push(mp(-dis[i],i));}}}rep(i,1,n) gr[i]=i;sort(gr+1,gr+n+1,cmp);ll ans=1;rep(i,2,n){ll tmp=0;rep(j,1,i-1)if(dis[gr[j]]+tr[gr[j]][gr[i]]==dis[gr[i]]) ++tmp;ans=ans*tmp%mod;}cout<<ans<<endl;
}

CH6202 黑暗城堡 最短路径生成树相关推荐

  1. 信息奥赛一本通1486: CH 6202 黑暗城堡 最短路径生成树计数

    1486:黑暗城堡 [题目描述] 知道黑暗城堡有 N 个房间,M 条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设 Di为如果所有的通道都被修建,第 i 号房间与第 1 ...

  2. acwing349 黑暗城堡 ——最短路径生成树

    Link 思路 最短路径生成树计数 代码 // // #include <bits/stdc++.h> using namespace std; //#define mp make_pai ...

  3. 黑暗城堡 最短路径生成树

    dark♂城堡(233 题目描述 一个图,有n个节点,m条带权值无向边,构造一颗生成树,使得树上的点到根(1)的距离为该点到1的最短距离.输出符合条件的生成树的个数 答案模取\(2^{31}-1\) ...

  4. 一本通 P1486 【黑暗城堡】

    题库 :一本通 题号 :1486 题目 :黑暗城堡 link :http://ybt.ssoier.cn:8088/problem_show.php?pid=1486 思路 :这道题既然要求使加入生成 ...

  5. 黑暗城堡-(最小生成树+最短路)

    咕咕咕 prim的特点是从一个点开始,不断把距离最短的点加入图中,在以此延伸.是一种贪心的想法.当知道prim的特点的时候,就可以想到这题用prim. 这题又要求实际路径=最短路径,,也可以想到用di ...

  6. SPFA算法+例题 :问题 A: 黑暗城堡

    SPFA算法 算法思想: 1) 三角形中的性质:同一三角形内两边之和大于第三边. 2)由上面那一条性质,我们可以想出一个方法来更新源点到其他点的最短的路径:用中间节点k松弛u->k->v, ...

  7. 最短路径生成树与最小生成树

    虽然放在一起,但是他们两个除了都是树之外没有一点关系. 最短路径生成树,就是ROOT根节点到达任意点距离最短的路径所构成的树,就是最短路径生成树.我画两个图给大家理解. 最短路径生成树 最小生成树 这 ...

  8. 最短路径生成树计数+最短路径生成树

    最短路径生成树计数. 我们应该先明白什么是最短路径生成树,不会戳这里. 计数方法明显是要使用乘法原理计数,也就是说我们可以得出每一步的方案数再乘进答案中. 接下来考虑如何的出每一步的方案数,所谓方案数 ...

  9. LOJ:黑暗城堡(最短路)

    题目描述 求一个图关于1的最小路径树的方案数 解析 想复杂了qwq 跑dij的时候如果dis[now]+w==dis[to],就使cnt[to]++ 如果更新dis,cnt赋值成1 最后乘起来即可 本 ...

  10. OI每周刷题记录——lrllrl

    看这标题就知道我是模仿的hzwer大佬,远程%%% 大佬的OI经历让蒟蒻我深受感触,为了晚一些AFO本蒟蒻也得加油了 从高二上期第一周开始计数,每个星期天更一次,一直更到我AFO 如果这是我此生最后一 ...

最新文章

  1. db2 linux 导入数据_「软件资料」-「软件使用」-Linux 导入、导出 MySQL 数据库命令...
  2. Matlab与线性代数 -- 矩阵的大小
  3. 使用 Xbrowser4远程连接到 CentOS 7
  4. Github标星57k+,热榜第一,用Python实现所有算法
  5. java web与android互通的aes算法
  6. Jeecg_3.6新版本功能专题讲解 - 公开课(自定义表单、数据权限)
  7. C# IOCP完成端口模型(简单实用高效)
  8. Intel 64/x86_64/IA-32/x86处理器 - 指令格式(7) - 80386/32位指令格式概述
  9. Ubuntu18.04 安装nextcloud
  10. linux日常运维命令
  11. 检验检测系统管理服务器,检验检测管理平台
  12. 离线百度地图,添加按钮点击切换卫星地图和街道地图(纯JS)
  13. python如何画三角形的外接圆_用python画三角形外接圆和内切圆
  14. 手机上怎么做电子档文件(实用技巧)
  15. 网易考拉海购Java开发面经(已拿offer)
  16. [CTSC2016]时空旅行(线段树+凸包)
  17. easyExcel的复杂表头多级表头导入
  18. 代码已上传至googlecode
  19. NC WebService开发参考
  20. 第九章 知识结构图谱

热门文章

  1. 返回结果集Result类
  2. 在山东技校学计算机选哪个学校好,山东最好的技校排名
  3. JWT全面解读、详细使用步骤
  4. Redirected Walking
  5. 课本剧剧本和计算机专业相关,《滥竽充数》课本剧剧本
  6. 库克低调访华,3小时郑州行程俨然一位效率大师
  7. 语义分割的评价指标——IoU
  8. React 备忘录 v16
  9. 【毕设】基于CycleGAN的风格迁移【二】CycleGAN源码解读
  10. 如何维持APP用户的登陆状态