魔法宝石

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 302    Accepted Submission(s): 102

Problem Description
小s想要创造n种魔法宝石。小s可以用ai的魔力值创造一棵第i种魔法宝石,或是使用两个宝石合成另一种宝石(不消耗魔力值)。请你帮小s算出合成某种宝石的所需的最小花费。
Input
第一行为数据组数T(1≤T≤3)。
对于每组数据,首先一行为n,m(1≤n,m≤10^5)。分别表示魔法宝石种类数和合成魔法的数量。
之后一行n个数表示a1到an。(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

不断地扫,直到没有新的宝石合成。

不断维护得到宝石所需要的能量,(因为合成宝石不需要能量)

#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 100005
using namespace std;int main(){int t;cin>>t;int a[maxn];while(t--){int n,m;int a1[maxn],b1[maxn],c1[maxn];scanf("%d%d",&n,&m);for(int i=0;i<=n;i++){a[i]=a1[i]=b1[i]=c1[i]=0;}for(int i=1;i<=n;i++){scanf("%d",&a[i]);}for(int i=0;i<m;i++){scanf("%d%d%d",&a1[i],&b1[i],&c1[i]);}for(int i=0;i<999999;i++){bool ifchange=1;for(int j=0;j<m;j++){if(a[a1[j]]+a[b1[j]]<a[c1[j]]){ifchange = 0;a[c1[j]]=a[a1[j]]+a[b1[j]];}}if(ifchange)break;    }for(int i=1;i<=n-1;i++){printf("%d ",a[i]);} printf("%d\n",a[n]);}return 0;
}

魔法宝石(类似dp 杭电排位赛-2)相关推荐

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

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

  2. 杭电2017单人排位赛2-B魔法宝石

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

  3. 2019年杭电多校第一场 1001题blank(DP)HDU6578

    2019年杭电多校第一场 1001题blank(DP)HDU6578 解决思路,开一个DP数组来存储0 1 2 3四个字符最后出现的位置,并且在DP中已经==排好序==. DP开四维,DP[i][j] ...

  4. 杭电46道DP牛人总结

    原文地址:杭电46道DP牛人总结作者:飞泉鸣玉 杭电46道DP牛人总结 HDU 动态规划(46道题目)倾情奉献~ [只提供思路与状态转移方程] 收藏 Robberies http://acm.hdu. ...

  5. 杭电1284钱币兑换问题—背包dp/母函数(java)

    Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于32768. Out ...

  6. 杭电1024 Max Sum Plus Plus状压dp(java)

    问题描述 现在我认为你已经在Ignatius.L的"最大总和"问题中得到了AC.为了成为一名勇敢的ACMer,我们总是向更难挑战的问题挑战自我.现在你面临着一个更困难的问题. 给定 ...

  7. 杭电oj1257最少拦截系统—贪心/dp最大递增子序列

    附上题目链接:杭电oj1257 这个题目有动态规划和贪心两种解决方式. 贪心法1: 对于导弹我们知道只可以从大到小的反导,一个系统必须从大到小排列.那么我们就可以选择从最高的那个导弹入手,往右找仅次于 ...

  8. java max sum_杭电1024 Max Sum Plus Plus状压dp(java)

    问题描述 现在我认为你已经在Ignatius.L的"最大总和"问题中得到了AC.为了成为一名勇敢的ACMer,我们总是向更难挑战的问题挑战自我.现在你面临着一个更困难的问题. 给定 ...

  9. 杭电2391--Filthy Rich(DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2391 题目意思:在一个n*m的矩阵中,不同的位置有不同重量的黄金,从矩阵的左上角开始,到右下角,只能向 ...

最新文章

  1. [C#反射]C#中的反射解析及使用.
  2. 微信浏览器下拉黑边的终极解决方案---wScroollFix
  3. 微软 AI 设计原则:成为弱者,再带来惊喜
  4. Java 中的 BigDecimal 类你了解多少?
  5. Linux的追逐,Windows的穷途恼指日可待
  6. c++现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度
  7. 马云:搞AI严防叶公好龙;李彦宏:不拥抱AI的公司会死掉
  8. centos7.6 LNMP新版本
  9. Singleton(单件)
  10. python植物大战僵尸代码1.2
  11. html5svg在线编辑器,新技术应用——HTML5内联SVG
  12. arduino入门(一)arduino下载安装,炒鸡详解
  13. 蚁群背包问题matlab代码,蚁群算法--背包问题
  14. 【Windows】如何关闭svchost,win10系统svchost下载占网速,无缘无故下载软件
  15. Sketch 的基本操作(一)
  16. python 100days github_GitHub - fxianchao/Python-100-Days: Python - 100天从新手到大师
  17. 163邮箱 提示xm002 NO SELECT Unsafe Login. Please contact kefu@188.com for help
  18. 从细胞发现到DNA分子结构的发现,人类经历了三百年
  19. 一个好的web前端开发者,是怎么学习的?前端开发培训机构哪个比较好
  20. 95文件及文件夹操作实践

热门文章

  1. 昨日关注:唐骏说盛大、微软、比尔盖茨及营销
  2. 迅雷BT种子制作方法
  3. 项目纪实--如何搭建一个高可用强一致性灵活元数据管理的数据平台实现高效可靠的数据分发等功能
  4. Serverless 可观测性的过去、现在与未来
  5. 弦振动 matlab,弦振动规律及MATLAB数据处理
  6. 计算机软件专业入门,类图入门_计算机软件及应用_IT计算机_专业资料
  7. 将Virtualbox虚拟机转换格式并导入Hyper-V
  8. ubuntu拨号上网
  9. LS1021A 调试问题记录
  10. lx2160a - uart2(ttyAMA1)调试