魔法宝石 spfa
1262: 魔法宝石
时间限制: 2 秒 内存限制: 64 MB
提交: 248 解决: 48
提交 状态
题目描述
小s想要创造n种魔法宝石。小s可以用ai的魔力值创造一棵第i种魔法宝石,或是使用两个宝石合成另一种宝石(不消耗魔力值)。请你帮小s算出合成某种宝石的所需的最小花费。
输入
第一行为数据组数T(1≤T≤3)。
对于每组数据,首先一行为n,m(1≤n,m≤10^5)。分别表示魔法宝石种类数和合成魔法的数量。
之后一行n个数表示a1到an。(1≤ai≤10^9)。a_i表示合成第i种宝石所需的魔力值。
之后n行,每行三个数a,b,c(1≤a,b,c≤n),表示一个第a种宝石和第b种宝石,可以合成一个第c种宝石。
输出
每组数据输出一行n个数,其中第i个数表示合成第i种宝石的魔力值最小花费。
样例输入
1
3 1
1 1 10
1 2 3
样例输出
1 1 2
spfa算法
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<queue>
#include<algorithm>
using namespace std;
#define inf 0x3f3f3f
#define spot 100000
#define edge 1000000
struct stu
{int x,y,z,ha;
} a[2*edge+10];
int b1[100005];
int dis[spot+10],first[spot+10],next1[2*edge+10],b[spot+10];
int main()
{queue<int>q;int t;scanf("%d",&t);int i,j,xx,yy,zz,k;while(t--){int n,m;j=0;memset(dis,inf,sizeof(dis));memset(first,-1,sizeof(first));memset(b,0,sizeof(b));scanf("%d%d",&n,&m);for(int i=1; i<=n; i++){scanf("%d",&b1[i]);dis[i]=b1[i];}for(int i=1; i<=m; i++){scanf("%d%d%d",&xx,&yy,&zz);a[++j].x=xx,a[j].y=yy,a[j].z=zz;next1[j]=first[a[j].x];first[a[j].x]=j;a[++j].x=yy,a[j].y=xx,a[j].z=zz;next1[j]=first[a[j].x];first[a[j].x]=j;if(b[xx]==0){q.push(xx);b[xx]=1;}if(b[yy]==0){q.push(yy);b[yy]=1;}}while(!q.empty()){k=q.front();q.pop();b[k]=0;for(k=first[k]; k+1; k=next1[k]){if(dis[a[k].z]>dis[a[k].x]+dis[a[k].y]){dis[a[k].z]=dis[a[k].x]+dis[a[k].y];if(!b[a[k].z])q.push(a[k].z),b[a[k].z]=1;}}}for(int i=1; i<=n; i++){if(i<=n-1)printf("%d ",dis[i]);elseprintf("%d\n",dis[i]);}}
}
魔法宝石 spfa相关推荐
- HAUT 1262 魔法宝石(spfa)(河南工业大学2017校赛)
魔法宝石 题目描述 小s想要创造n种魔法宝石.小s可以用ai的魔力值创造一棵第i种魔法宝石,或是使用两个宝石合成另一种宝石(不消耗魔力值).请你帮小s算出合成某种宝石的所需的最小花费. 输入 第一行为 ...
- HAUT 1262 魔法宝石 暴力思想,多种解决方案
魔法宝石 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submi ...
- 2016年 河南工业大学校赛 C题.魔法宝石
魔法宝石 时间限制: 2 秒 内存限制: 64 MB | 提交: 582 解决: 187 题目描述 小s想要创造n种魔法宝石.小s可以用ai的魔力值创造一棵第i种魔法宝石,或是使用两个宝石合成 ...
- HAUT 1262 魔法宝石 (最短路变形 or 暴力)
1262: 魔法宝石 时间限制: 2 秒 内存限制: 64 MB 提交: 537 解决: 164 提交 状态 题目描述 小s想要创造n种魔法宝石.小s可以用ai的魔力值创造一棵第i种魔法宝石,或是 ...
- 魔法宝石(动态规划)
Bessie 去珠宝商店想要买一些魔法宝石.商店里有 n 个宝石,每个宝石的重量为 wi幸运值为 vi.Bessie 的购物车只能装重量之和不超过 mm 的商品,现在她想知道如何选择宝石,能让购买的幸 ...
- 7.7魔法宝石(dp) Bessie 的体重问题 干草出售
1.魔法宝石 Bessie 去珠宝商店想要买一些魔法宝石.商店里有 nn 个宝石,每个宝石的重量为 w_iwi,幸运值为 v_ivi.Bessie 的购物车只能装重量之和不超过 mm 的商品,现在 ...
- 魔法宝石(邻接表+dfs更新)
魔法宝石 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submissi ...
- HAUT校赛 魔法宝石 暴力
问题 C: 魔法宝石 时间限制: 2 秒 内存限制: 64 MB 提交: 505 解决: 149 提交 状态 题目描述 小s想要创造n种魔法宝石.小s可以用ai的魔力值创造一棵第i种魔法宝石,或是 ...
- 魔法宝石(思维啊……)
魔法宝石 时间限制: 2 秒 内存限制: 64 MB 题目描述 小s想要创造n种魔法宝石.小s可以用ai的魔力值创造一棵第i种魔法宝石,或是使用两个宝石合成另一种宝石(不消耗魔力值).请你帮小s ...
最新文章
- 【HM】第5课:JDBC连接MySQL数据库
- IBM发布Open Liberty 18.0.0.4,支持MicroProfile 2.1和反应性扩展框架
- DevExpress控件之GridControl、GridView
- 一切为了运营!如何从推广短信链接唤起 App?
- 【软考-软件设计师】程序设计语言基础知识框架
- 欧拉路径(Euler_Path)和欧拉回路(Euler_Loop)
- android微信预览pdf,网页的pdf、office链接安卓版面微信浏览器无法打开
- lstm网络一般训练多少轮_做网络推广一般多少钱:做网络推广 你一定会用到这个产品...
- 病毒注册表常用目标Svchost和Explorer
- WPF内嵌WCF服务对外提供接口
- 旅游管理系统(包含旅游最短路径规划算法等,包含系统分析的各种uml图和界面图)
- 文章整理 - 匠人精神
- python绘制emoji_使用Emoji表情拼成汉字
- html5光线传感器,光线传感器是什么
- SVN代码迁移到Gitlab(保留SVN的提交记录)
- unreal 渲染讲的比较好的材料
- vuex入门到实战——实现一个todoList待办清单【学习记录】
- jdbc mysql api_JDBC---一种用于执行SQL的Java API
- 查看当前系统 jave 版本 ,Eclipse版本
- python qrcode生成二维码