#10064. 「一本通 3.1 例 1」黑暗城堡
传送门
#include<bits/stdc++.h>
#include<queue>
#define ll long long
#define INF 2147483647
#define rep(i,a,b) for(register int (i)=(a);(i)<=(b);(i)++)
#define don(i,a,b) for(register int (i)=(a);(i)>=(b);(i)--)
using namespace std;
const int maxn=1e6+10;
const int maxm=1e3+10;
int n,m,cnt=0;
int head[maxn],num[maxn],dis[maxn],vis[maxn];
ll ans=1;template <class t> inline void read(t &x)
{x=0;int f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();}while(isdigit(ch)){x=10*x+ch-'0';ch=getchar();}x*=f;
}template <class t> inline void write(t x) {if(x<0) {putchar('-');x=~x+1;}if(x>9) write(x/10);putchar(x%10+48);
}struct NODE{int v,nex,w;
}e[maxn<<1];struct node{int w,u;friend bool operator < (const node A,const node B) {return A.w>B.w;}
};void add(int u,int v,int w) {e[++cnt].v=v;e[cnt].w=w;e[cnt].nex=head[u];head[u]=cnt;
}void readdata()
{read(n),read(m);rep(i,1,m) {int x,y,z;read(x),read(y),read(z);add(x,y,z);add(y,x,z);}
}void djkstra()
{priority_queue<node> q;dis[1]=0;q.push(node{0,1});while(q.size()) {node U=q.top();int u=U.u;q.pop();if(!vis[u]) vis[u]=true;for(int i=head[u];i;i=e[i].nex) {int v=e[i].v;if(dis[v]>dis[u]+e[i].w) {dis[v]=dis[u]+e[i].w;if(!vis[v])q.push(node{dis[v],v});}}}
}void work()
{rep(i,1,n) dis[i]=INT_MAX;djkstra();rep(i,1,n) {for(int j=head[i];j;j=e[j].nex) {if(dis[i]==dis[e[j].v]+e[j].w) num[i]++;}if(num[i])ans*=num[i];ans%=INF;}write(ans);putchar('\n');
}int main()
{readdata();work();return 0;
}
#10064. 「一本通 3.1 例 1」黑暗城堡相关推荐
- 【C++】「一本通 1.1 例 4」加工生产调度
「一本通 1.1 例 4」加工生产调度 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [数据范围] [解析] [代码] [来源] 一本通题库-1425 LibreOJ ...
- LibreOJ10082. 「一本通 3.3 例 1」Word Rings【二分+SPFA】
10082. 「一本通 3.3 例 1」Word Rings [题目描述] 传送门 [题解] 将一个字符串看成一条边,字符两端的字符看成节点,长度看成权值.二分枚举答案,最后SPFA刷正环,因为只要有 ...
- 【C++】「一本通 1.1 例 2」种树
「一本通 1.1 例 2」种树 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [解析] [代码] [来源] 一本通题库-1423 LibreOJ-10001 vjud ...
- #10001. 「一本通 1.1 例 2」种树
#10001. 「一本通 1.1 例 2」种树 满足n个区间种树的要求,求最少种多少棵数 思路 按照区间的尾巴来排序,因为如果区间有重叠的种在第一个区间的尾巴可以使得种树更少,所有每次始从尾巴开始种树 ...
- 【C++】「一本通 1.1 例 5」智力大冲浪
「一本通 1.1 例 5」智力大冲浪 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [数据范围] [解析] [代码] [来源] 一本通题库-1426 LibreOJ- ...
- Loj 10115 「一本通 4.1 例 3」校门外的树 (树状数组)
题目链接:https://loj.ac/problem/10115 题目描述 原题来自:Vijos P1448 校门外有很多树,学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的 ...
- #10003. 「一本通 1.1 例 4」加工生产调度(贪心)
加工生产调度 题目描述 某工厂收到了n个产品的订单,这n个产品分别在A.B两个车间加工,并且必须先在A车间加工后才可以到B车间加工. 某个产品i在A.B两车间加工的时间分别为Ai.Bi.询问怎样安排这 ...
- 「一本通 4.1 例 3」校门外的树 (loj10115)
题目描述 原题来自:Vijos P1448 校门外有很多树,学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两种操作: K=1,读入 l,r表示在 l 到 r 之间种上 ...
- loj10157. 「一本通 5.2 例 5」皇宫看守
思路: 例四是覆盖全部边,dp两个状态,例五是覆盖全部点,dp三个状态. #include<cstdio> #include<iostream> #include<cst ...
- #10019. 「一本通 1.3 例 2」生日蛋糕
冥想盆 感性理解深搜剪枝(看完这个再看下面的文章) 理解本题的思路 [代码实现1:最慢最好理解(自己打的):100多ms] [代码实现2:次慢:30多ms] [代码实现3:最快:10多ms] 最后放上 ...
最新文章
- mybatis-plus对datetime返回去掉.0_华为AI认证-TensorFlow2.0编程基础
- Webix 1.5发布:一个强大的JavaScript UI组件库
- 为你的程序添加监听器
- linux服务器 32核,Intel换成AMD 32核锐龙 Linux之父体验很好
- 文本相似度几种计算方法及代码python实现
- 想让马云成为你的老大?揭秘阿里面试情景
- centos6.9负载均衡方案完整配置(lvs+keepalived+pxc+nfs+业务系统)
- 查询oracle 数据库中回滚段中一个时间点被修改的表数据并还原表中原来数据
- 以太坊 ERC-20 ERC-721 ERC-1155区别对比
- MyBatis中Mapper接口是怎么和XML文件关联起来的
- chrome浏览器 json插件【WEB前端助手】
- can卡通用测试软件LCANTest详细介绍
- 深度好文:这才是实际工作中的竞品分析
- android中截屏快捷键是什么,安卓手机怎么截屏?安卓手机截图快捷键功能图文详解...
- 人工智能技术及其应用初探
- MTK平台修改Bootloader源代码,让Android设备一通电就自动开机
- leetcode No5 最长回文子串
- 微信小程序中的空格怎么打
- ExpandableListView自带箭头图标去除和替换
- 美国人初学编程代码之三
热门文章
- python提升算法3_XGBOOST_docs_Scikit-LearnAPI_XGBClassifier_train参数01
- HC05蓝牙模块使用
- BP神经网络的简单应用
- python对数正态分布函数_Lognormal Distribution对数正态分布
- 《活出生命的意义》读书笔记
- Python 实战 | 工欲善其事,必先利其器
- 微信大数据挑战赛决赛方案:微信视频号推荐算法
- 矩阵计算在计算机科学中,开发者必读:计算机科学中的线性代数
- win7开机显示计算机无法启动,win7无法开机怎么办?解决开机报错代码C0000034的方法...
- 南京计算机图书,计算机中心附近图书馆