1262: 魔法宝石

时间限制: 2 秒  内存限制: 64 MB
提交: 332  解决: 77
提交 状态

题目描述

小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,cm),表示一个第a种宝石和第b种宝石,可以合成一个第c种宝石。

输出

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

样例输入

1
3 1
1 1 10
1 2 3

样例输出

1 1 2

观察者这道题首先想到就是让a0[c]=min(a0[c],a0[a]+a0[b])就可以了;但是仔细想想之后会发现可能出现这种情况,例如:a0={10,10,15,1,1},abc分别等于1 2 3;4 5 1;这种情况就要考虑进行a0[c]=min(a0[c],a0[a]+a0[b])的顺序了,但是当顺序非常复杂是就很难通过一遍a0[c]=min(a0[c],a0[a]+a0[b])步骤达到最终结果了,在根据数据量就可以尝试不管顺序,直接多次按输入顺序进行a0[c]=min(a0[c],a0[a]+a0[b])了。

经过尝试,果然经过100次循环后就轻松解决了顺序问题。

#include<bits/stdc++.h>
using namespace std;
int xxx[100005];//合成宝石的花费
int a[100005],b[100005],c[100005];
int main() {int T,n,m;int i,j;cin>>T;while(T--) {cin>>n>>m;for(i=0; i<n; i++)cin>>xxx[i];for(i=0; i<m; i++)cin>>a[i]>>b[i]>>c[i];for(j=0; j<100; j++)for(i=0; i<m; i++)xxx[c[i]-1]=min(xxx[c[i]-1],xxx[a[i]-1]+xxx[b[i]-1]);cout<<xxx[0];for(i=1; i<n; i++)cout<<' '<<xxx[i];cout<<endl;}return 0;
}


												

HAUTOJ 1262: 魔法宝石 24行代码相关推荐

  1. hautoj 1262 魔法宝石【最短路】

    点击打开链接 时间限制: 2 秒  内存限制: 64 MB 提交: 510  解决: 150 提交 状态 题目描述 小s想要创造n种魔法宝石.小s可以用ai的魔力值创造一棵第i种魔法宝石,或是使用两个 ...

  2. HAUTOJ 1262 魔法宝石

    题目链接:HAUTOJ 1262 很简单的一道题 就是注意 需要循环N次 直到最小的不再发生变化 #include<iostream> using namespace std; int m ...

  3. HAUTOJ 1262魔法宝石 优先队列

    题目链接 比赛场上是暴力怼过去的,回来补题学了个优先队列的想法 因为宝石的合成情况可能有嵌套,比如1和2生成3,1和3生成2,2和3生成1,如果用dp去做的话,那么就会形成一个回路,就没办法当做树形d ...

  4. 【haut 1262: 魔法宝石】+ 暴力

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

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

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

  6. 1262: 魔法宝石

    http://218.28.220.249:50015/JudgeOnline/problem.php?id=1262 1262: 魔法宝石 时间限制: 2 秒  内存限制: 64 MB 提交: 37 ...

  7. haut 1262: 魔法宝石(dij+堆优化)@

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

  8. [Python私活案例]24行代码,轻松赚取400元,运用Selenium爬取39万条数据

    今天分享一单来自金主爸爸的私单,运用简单的爬虫技巧,可以有效的规避反爬机制,正所谓"你有张良计,我有过云梯".这个案例也很好的体现了python语音的优势,规避了非常复杂的底层逻辑 ...

  9. 基于华为云会议SDK 24行代码打造企业专属会议室

    华为已经有着超过20年的视频会议产品研发经验,拥有1000多项视频会议.音视频相关的国际和国内专利技术.华为云会议基于全开放的产品定位,将华为云会议的所有产品能力都开放给伙伴,伙伴可以通过集成华为云会 ...

最新文章

  1. Matlab将多项式的系数设为0
  2. 基于 Express 与 Mongodb 的简易 实现一个多人 blog
  3. Java 中的 BigDecimal 类你了解多少?
  4. JavaScript面向对象编程深入分析
  5. 齐博V7仿爱丽图库模板(含齐博图库V1.0模板)
  6. 数据结构:(5)算法分析基础
  7. RoterOS负载均衡教程
  8. Vijos P1848 计数问题
  9. 【已解决】Python将网页内容保存为PDF (url转pdf)
  10. 如何去掉网页一直点击出现蓝色背景的效果
  11. win10计算机控制面板在哪里,教您win10控制面板在哪
  12. java中怎么引用圆周率_Java简单计算圆周率完整示例
  13. mysql求回购率_SQL-- 用户行为(复购率、回购率等)
  14. C++ STL源码剖析 tr1与std array
  15. DevC++实现代码高亮复制进word
  16. 心态-《不抱怨的世界》书中的精髓:通过4个步骤,成为一个不抱怨、每天都快乐的人。
  17. 自动化构建:gitlab gitlab-run ,maven的缓存 和 gitea drone drone-run
  18. UE4:按键按下触发声音事件,离开位置声音停止
  19. 关于MSTP【网络设备互联】
  20. 《程序员的自我修养》读书笔记——动态链接

热门文章

  1. 全国计算机系统导出名单,墨涩网 - 快速查询导出电脑常用信息——墨涩网
  2. java基础数据类型大小
  3. CentOS8 源码编译安装 lamp环境 (apache24 + php7.3 + mysql57)
  4. Python3端口扫描器
  5. 木材材积表快速计算器_木材材积表计算器
  6. kuka机器人报电源管理报错_KUKA机器人故障信息与故障处理_中文版.pdf
  7. WebAPI中 request.query、request.body
  8. centos7挂载移动硬盘
  9. linux启动dns失败,Linux DNS 设置失败
  10. 洛谷P2327 [SCOI2005]扫雷 题解