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,cn),表示一个第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相关推荐

  1. HAUT 1262 魔法宝石(spfa)(河南工业大学2017校赛)

    魔法宝石 题目描述 小s想要创造n种魔法宝石.小s可以用ai的魔力值创造一棵第i种魔法宝石,或是使用两个宝石合成另一种宝石(不消耗魔力值).请你帮小s算出合成某种宝石的所需的最小花费. 输入 第一行为 ...

  2. HAUT 1262 魔法宝石 暴力思想,多种解决方案

    魔法宝石 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submi ...

  3. 2016年 河南工业大学校赛 C题.魔法宝石

    魔法宝石 时间限制: 2 秒  内存限制: 64 MB  |  提交: 582  解决: 187 题目描述 小s想要创造n种魔法宝石.小s可以用ai的魔力值创造一棵第i种魔法宝石,或是使用两个宝石合成 ...

  4. HAUT 1262 魔法宝石 (最短路变形 or 暴力)

    1262: 魔法宝石 时间限制: 2 秒  内存限制: 64 MB 提交: 537  解决: 164 提交 状态 题目描述 小s想要创造n种魔法宝石.小s可以用ai的魔力值创造一棵第i种魔法宝石,或是 ...

  5. 魔法宝石(动态规划)

    Bessie 去珠宝商店想要买一些魔法宝石.商店里有 n 个宝石,每个宝石的重量为 wi幸运值为 vi.Bessie 的购物车只能装重量之和不超过 mm 的商品,现在她想知道如何选择宝石,能让购买的幸 ...

  6. 7.7魔法宝石(dp) Bessie 的体重问题 干草出售

    1.魔法宝石 Bessie 去珠宝商店想要买一些魔法宝石.商店里有 nn 个宝石,每个宝石的重量为 w_iwi​,幸运值为 v_ivi​.Bessie 的购物车只能装重量之和不超过 mm 的商品,现在 ...

  7. 魔法宝石(邻接表+dfs更新)

    魔法宝石 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submissi ...

  8. HAUT校赛 魔法宝石 暴力

    问题 C: 魔法宝石 时间限制: 2 秒  内存限制: 64 MB 提交: 505  解决: 149 提交 状态 题目描述 小s想要创造n种魔法宝石.小s可以用ai的魔力值创造一棵第i种魔法宝石,或是 ...

  9. 魔法宝石(思维啊……)

    魔法宝石 时间限制: 2 秒  内存限制: 64 MB   题目描述 小s想要创造n种魔法宝石.小s可以用ai的魔力值创造一棵第i种魔法宝石,或是使用两个宝石合成另一种宝石(不消耗魔力值).请你帮小s ...

最新文章

  1. 【HM】第5课:JDBC连接MySQL数据库
  2. IBM发布Open Liberty 18.0.0.4,支持MicroProfile 2.1和反应性扩展框架
  3. DevExpress控件之GridControl、GridView
  4. 一切为了运营!如何从推广短信链接唤起 App?
  5. 【软考-软件设计师】程序设计语言基础知识框架
  6. 欧拉路径(Euler_Path)和欧拉回路(Euler_Loop)
  7. android微信预览pdf,网页的pdf、office链接安卓版面微信浏览器无法打开
  8. lstm网络一般训练多少轮_做网络推广一般多少钱:做网络推广 你一定会用到这个产品...
  9. 病毒注册表常用目标Svchost和Explorer
  10. WPF内嵌WCF服务对外提供接口
  11. 旅游管理系统(包含旅游最短路径规划算法等,包含系统分析的各种uml图和界面图)
  12. 文章整理 - 匠人精神
  13. python绘制emoji_使用Emoji表情拼成汉字
  14. html5光线传感器,光线传感器是什么
  15. SVN代码迁移到Gitlab(保留SVN的提交记录)
  16. unreal 渲染讲的比较好的材料
  17. vuex入门到实战——实现一个todoList待办清单【学习记录】
  18. jdbc mysql api_JDBC---一种用于执行SQL的Java API
  19. 查看当前系统 jave 版本 ,Eclipse版本
  20. python qrcode生成二维码

热门文章

  1. 李航 统计学习方法 课后习题答案 第二版
  2. 视频教程-Project-规划项目(基本操作)-Office/WPS
  3. python五子棋ai棋力最高_棋力最强的五子棋 App 是什么?
  4. 2021毕业年的最后一躺
  5. Android X86 解决ARM兼容的问题
  6. 【每日一题】宝石与石头
  7. HDU 2188 JAVA
  8. 淘宝客,根据淘宝Url,获取到商品的ID
  9. 警惕 CONFIG+=ordered
  10. mysql好评中评统计_scrapy爬取京东笔记本及评论信息存入MySQL数据库