博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
杭电2017单人排位赛2-B魔法宝石
阅读量:4678 次
发布时间:2019-06-09

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

 

Problem Description

 

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

 

 

 

Input

 

第一行为数据组数T(1≤T≤3)。
对于每组数据,首先一行为n,m(1≤n,m≤10^5)。分别表示魔法宝石种类数和合成魔法的数量。
之后一行n个数表示
a1an。(1≤ai≤10^9)。ai表示合成第i种宝石所需的魔力值。
之后m行,每行三个数a,b,c(1≤a,b,c≤n),表示一个第a种宝石和第b种宝石,可以合成一个第c种宝石。

 

 

Output

 

每组数据输出一行n个数,其中第i个数表示合成第i种宝石的魔力值最小花费。

 

 

Sample Input

 

1 3 1 1 1 10 1 2 3

 

 

Sample Output

 

1 1 2

 

1、使用结构体去保存宝石变化的情况
2、while(1)一直循环找到每个宝石的最小费用后跳出
#include
using namespace std;struct node{int x,y,z;}b[100000+5]; int main(){ int a[100000+5]; int i,j; int t; cin>>t; bool cnt; while(t--) { int n,m; cin>>n>>m; for(i=1;i<=n;i++) cin>>a[i]; for(i=1;i<=m;i++) cin>>b[i].x>>b[i].y>>b[i].z; while(1) { cnt=false; for(i=1;i<=m;i++){ if(a[b[i].x]+a[b[i].y]

  

 

转载于:https://www.cnblogs.com/Scalpel-cold/p/7127995.html

你可能感兴趣的文章
如何查看自己电脑支持OpenGL core版本
查看>>
页面元素定位 XPath 简介
查看>>
[转]loadrunner:系统的平均并发用户数和并发数峰值如何估算
查看>>
Linux下Tomcat重新启动
查看>>
HTML Table to Json
查看>>
Theano 学习笔记(一)
查看>>
1.7 节点进行排序显示
查看>>
web最佳实践
查看>>
spring 集成shiro 之 自定义过滤器
查看>>
验证密码不允许有连续三位重复的正则表达式
查看>>
python 中对list去重
查看>>
Mono Libgdiplus库
查看>>
js模糊查询案例
查看>>
c语言基础知识要点
查看>>
Android模拟器无法上网访问网络失败解决办法
查看>>
node启动时, listen EADDRINUSE 报错;
查看>>
vue学习链接
查看>>
Systemd 初始化进程
查看>>
【C#学习笔记】文本复制到粘贴板
查看>>
Windows store 验证你的 URL http:// 和 https:// ms-appx:/// ms-appdata:///local
查看>>