博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
城堡 (spfa+cheng)
阅读量:6338 次
发布时间:2019-06-22

本文共 1881 字,大约阅读时间需要 6 分钟。

【问题描述】

给定一张?个点?条边的无向连通图,每条边有边权。我们需要从?条边中
选出? − 1条, 构成一棵树。 记原图中从 1 号点到每个节点的最短路径长度为? ? ,
树中从 1 号点到每个节点的最短路径长度为? ? ,构出的树应当满足对于任意节点
?,都有? ? = ? ? 。

请你求出选出? − 1条边的方案数。

【输入格式】

输入的第一行包含两个整数?和?。
接下来?行,每行包含三个整数?、?和?,描述一条连接节点?和?且边权为
?的边。

【输出格式】

输出一行,包含一个整数,代表方案数对2 31 − 1取模得到的结果。

【样例输入】

3 3
1 2 2
1 3 1
2 3 1

【样例输出】

2

【数据规模和约定】

32 ≤ ? ≤ 5,? ≤ 10。
对于50%的数据,满足条件的方案数不超过 10000。
对于100%的数据,2≤ ? ≤ 1000,? − 1 ≤ ? ≤
? ?−1
2
,1 ≤ ? ≤ 100。

 

思路:

  按照题目里的说的模拟

  先跑一遍spfa得出单源最短路

  然后对于每一个点枚举所有与它相连的点

  如果与它相连的点的dis值加上这条边的权值等于它的dis值

  则这个点的价值加一

  所有的点枚举完后

  把价值为0的点赋值为1

  然后所有点的价值相乘

  即可得出答案

  但是

  你以为这就是正解?

  别忘了取mod(因为这个我没了40分)

  有mod才是正解

 

 

来,上代码:

#include
#include
#include
#include
using namespace std;struct node { int from,to,dis,next;};struct node edge[1000005];const long long int mod=2147483647;int num_head,num_edge,num_1=0,head[1001];int dis_1[1001],tree_leaf[1001],num_leaf=1;long long int ans_edge=1;long long int num_edge_tree[1001];char word;bool if_in_tree[1001];queue
q;inline void edge_add(int from,int to,int dis){ num_1++; edge[num_1].to=to; edge[num_1].dis=dis; edge[num_1].from=from; edge[num_1].next=head[from]; head[from]=num_1;}inline void read_int(int &now_001){ now_001=0;word=getchar(); while(word>'9'||word<'0') word=getchar(); while(word>='0'&&word<='9') { now_001=now_001*10+(int)(word-'0'); word=getchar(); }}void map_spfa(){ bool if_in_spfa[1001]; memset(dis_1,127/3,sizeof(dis_1)); memset(if_in_spfa,false,sizeof(if_in_spfa)); dis_1[1]=0; if_in_spfa[1]=true; q.push(1); int cur_1,cur_2; while(!q.empty()) { cur_1=q.front(); for(int i=head[cur_1];i!=0;i=edge[i].next) { if(dis_1[cur_1]+edge[i].dis

 

转载于:https://www.cnblogs.com/IUUUUUUUskyyy/p/6058661.html

你可能感兴趣的文章
NFC·(近距离无线通讯技术)
查看>>
多线程基础(三)NSThread基础
查看>>
PHP的学习--Traits新特性
查看>>
ubuntu下,py2,py3共存,/usr/bin/python: No module named virtualenvwrapper错误解决方法
查看>>
Ext.form.field.Number numberfield
查看>>
Linux文件夹分析
查看>>
解决部分月份绩效无法显示的问题:timestamp\union al\autocommit等的用法
查看>>
nginx 域名跳转 Nginx跳转自动到带www域名规则配置、nginx多域名向主域名跳转
查看>>
man openstack >>1.txt
查看>>
linux几大服务器版本大比拼
查看>>
在BT5系统中安装postgresQL
查看>>
【Magedu】Week01
查看>>
写给MongoDB开发者的50条建议Tip25
查看>>
为什么要让带宽制约云计算发展
查看>>
2012-8-5
查看>>
VS中ProjectDir的值以及$(ProjectDir)../的含义
查看>>
我的友情链接
查看>>
IP_VFR-4-FRAG_TABLE_OVERFLOW【cisco设备报错】碎片***
查看>>
Codeforces Round #256 (Div. 2) D. Multiplication Table 【二分】
查看>>
ARM汇编指令格式
查看>>