HFUT-1360 单身晚会 【SPFA】
Description
ZJ和ZCX在一起很久了,两个人都互生爱意,最终决定喜结良缘,从此踏入浪漫的婚姻殿堂。
但是,ZJ的好基友们想到以后ZJ就不能经常跟他们一起愉快的玩耍了,都觉得非常伤心难过,于是他们决定在最后一晚为ZJ开一场单身晚会,玩整晚紧张刺激的飞行棋。
ZJ的好基友居住在城市的各个地方(每个地方不一定只有一个基友),他们需要从各个地方赶到其中一个朋友的家里来参加这最后的单身PARTY,ZJ被基友们的热情深深感动了,决定对基友们来时的路费进行报销。报销规则按照距离来计算。基友们为了帮ZJ省钱,决定在所有人走最短路径的情况下,总距离最小的人的家里开PARTY。
ZJ想知道基友们走过的总距离是多少,然后他把总共需要报销的钱拿出来,就可以让基友们自己来分配了。但是他算了半天也没算出来总距离是多少,单身PARTY马上就开始了,你能帮帮他吗?
Input
第一行一个整数T,表示有T(T<15)组数据
每组数据的第一行基友数(包括ZJ)N(N<100),路口P(2<=P<=100),路口之间道路数C(1<=C<=1450),(基友的编号为1…N,路口的编号为1…P)
第二行到第N+1行:编号为1到N的基友们家所在的路口号。
第N+2行到N+C+1行:每行有三个数:相连的路口A,B,路口间间距D(1<=D<=255),当然,连接是双向的。
Output
每组数据输出占一行,输出大家必须要走的最小距离和
Sample Input
1
3 4 5
2
3
4
1 2 1
1 3 5
2 3 7
2 4 3
3 4 5
Sample Output
8
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define INF 0x3f3f3f3f 4 #define M(a, b) memset(a, b, sizeof(a)) 5 const int N = 100 + 5; 6 int d[N], p[N], cnt[N], inq[N], n; 7 struct Node { 8 int to, w; 9 }; 10 vector<Node> G[N]; 11 12 queue<int> q; 13 void spfa(int s) { 14 M(d, INF); M(inq, 0); 15 while (!q.empty()) q.pop(); 16 q.push(s); inq[s] = 1; d[s] = 0; 17 while (!q.empty()) { 18 int u = q.front(); q.pop(); 19 inq[u] = 0; 20 for (int i = 0; i < G[u].size(); ++i) { 21 int v = G[u][i].to, w = G[u][i].w; 22 if (d[v] > d[u] + w) { 23 d[v] = d[u] + w; 24 if (inq[v]) continue; 25 inq[v] = 1; 26 q.push(v); 27 } 28 } 29 } 30 } 31 32 int main() { 33 int m, c, T; 34 scanf("%d", &T); 35 while (T--) { 36 scanf("%d%d%d", &n, &m, &c); 37 for (int i = 1; i <= m; ++i) G[i].clear(); 38 for (int i = 1; i <= n; ++i) scanf("%d", &p[i]); 39 int u, v, w; 40 for (int i = 1; i <= c; ++i) { 41 scanf("%d%d%d", &u, &v, &w); 42 G[u].push_back(Node{v, w}); 43 G[v].push_back(Node{u, w}); 44 } 45 int ans = INF; 46 for (int i = 1; i <= m; ++i) { 47 spfa(i); 48 int temp = 0; 49 for (int j = 1; j <= n; ++j) { 50 temp += d[p[j]]; 51 } 52 ans = min(ans, temp); 53 } 54 printf("%d\n", ans); 55 } 56 57 58 return 0; 59 }
转载于:https://www.cnblogs.com/robin1998/p/6718458.html
HFUT-1360 单身晚会 【SPFA】相关推荐
- 研究生迎新晚会计算机学院祝福语,大学生迎新晚会祝福语
1. 新学期,让我们都加油去超越自己,开心享受青春岁月的绚丽多彩,把每一个日子都串起,编织一条闪亮的珍珠,藏在心灵深处.开学日快乐! 2. 开学了,踏上知识的沃土,尽情汲取;踏上学问的方舟,尽情驰骋; ...
- 研究生迎新晚会计算机学院祝福语,[迎新晚会家长祝福语]迎新晚会祝福语
迎新晚会家长祝福语篇1 1.带上自信的笑容,装满努力的决心,背好书包,向知识的海洋进军,为明天的美好读书,为人生辉煌加油,开学日,奔赴学堂,为梦想而努力,加油! 新学期祝福语. 2.金秋到来清风爽,开 ...
- 支付宝到账配音女神,5亿人听过她的声音,31岁依旧单身
击上方的终端研发部,右上角选择"设为星标" 每日早10点半,技术文章准时送上 公众号后台回复"学习",获取作者独家秘制精品资料 前言 随着互联网的发展,移动支付 ...
- NOIP模拟题 2016.11.15 [LIS] [spfa] [同余最短路] [矩阵快速幂] [容斥原理] [数学]
小L的二叉树 [题目描述] 勤奋又善于思考的小L接触了信息学竞赛,开始的学习十分顺利.但是,小L对数据结构的掌握实在十分渣渣. 所以,小L当时卡在了二叉树. 在计算机科学中,二叉树是每个结点最多有两个 ...
- BZOJ 1003[ZJOI2006]物流运输(SPFA+DP)
Problem 1003. -- [ZJOI2006]物流运输 1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MB Submit ...
- spfa(还不懂--)
粗略讲讲SPFA算法的原理,SPFA算法是1994年西安交通大学段凡丁提出 是一种求单源最短路的算法 算法中需要用到的主要变量 int n; //表示n个点,从1到n标号 int s,t; //s ...
- sdut AOE网上的关键路径(spfa+前向星)
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2498&cid=1304 题目描述 一个无环的有向图称为无环图(Directed Acyc ...
- poj 3662 Telephone Lines spfa算法灵活运用
意甲冠军: 到n节点无向图,它要求从一个线1至n路径.你可以让他们在k无条,的最大值.如今要求花费的最小值. 思路: 这道题能够首先想到二分枚举路径上的最大值,我认为用spfa更简洁一些.spfa的本 ...
- 1003 Emergency(Dijkstra,Bellman-Ford,SPFA三种解法)
目录 1. Dijkstra解法 2. Bellman-Ford解法 3. SPFA解法 4. Dijkstra解法AC代码 5. Bellman-Ford解法AC代码 6. SPFA解法AC代码 1 ...
最新文章
- 第一章:1.1 信号表征
- vagrant 配置并启动
- python 打造一个sql注入脚本 (一)
- gogs可以自动化部署吗_三千、五千平方的仓库房可以用自动化立体仓库吗?
- ExtJs2.0学习系列(6)--Ext.FormPanel之第三式(ComboBox篇)
- new 对象时的暗执行顺序
- Facebook发布张量理解库,自动编译高性能机器学习核心
- 在REUSE_ALV_GRID_DISPLAY_LVC后获取GRID
- 数据结构(C++)—— 向量(Vector)
- PHP魔术方法和魔法变量详解
- ASP.NET生成Excel并下载
- 计算机主机光驱弹不出来怎么办,win7系统电脑按下光驱按钮托盘就是弹不出来怎么办...
- 用计算机配置打印机IP,如何修改打印机IP地址?
- VMware Workstation12安装win 7企业版激活
- TP6微信公众号登陆授权
- oracle java.sql.SQLException: ORA-00911: 无效字符和ORA-01017: invalid username/password; logon denied
- RAID卡及其管理工具
- 你有脑回千百转,我只用一招鲜
- 深度学习真的working吗
- 基于matlab的脉冲多普勒测距、测速、实现测速以及测距功能
热门文章
- android短信导入ios,手动将iPhone短信导入Android手机方法
- 【读论文】An Object-Based Approach for Urban Land Cover Classification(2013)
- 2022年制冷与空调设备运行操作操作证考试题模拟考试平台操作
- c语言 在txt文件中搜索关键词_请输入搜索关键字
- AVR JTAG仿真器制作资料
- springboot禁用security
- 千禧年七大难题之 P = NP
- ffmpeg 代码实现将mp4 mov 信息置于文件头
- openwrt下载安装中文语言包(离线版)
- 2022 个人目标日历定作工具 微信小程序源码