1262: 魔法宝石

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

题目描述

小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种宝石的魔力值最小花费。

样例输入

13 11 1 101 2 3

样例输出

1 1 2

思路:暴力的话,每次把所有合成方法都跑一遍,一共跑200遍。。最短路的话边(u, v, w)表示u和v能合成w,spfa中的队列存的是优化过的点

最短路代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<queue>
using namespace std;
typedef long long ll;
const int maxn = 1e5+5;
ll dis[maxn];
int n, m;
struct node
{int v, w;node() {}node(int vv, int ww): v(vv), w(ww) {}
};
vector<node> g[maxn];
bool vis[maxn];
queue<int> q;void spfa()
{while(!q.empty()){int u = q.front(); q.pop();vis[u] = 0;for(int i = 0; i < g[u].size(); i++){int v = g[u][i].v;int w = g[u][i].w;if(dis[u]+dis[v] < dis[w]){dis[w] = dis[u]+dis[v];if(!vis[w]){q.push(w);vis[w] = 1;}}}}
}int main(void)
{int t;cin >> t;while(t--){while(!q.empty()) q.pop();memset(vis, 0, sizeof(vis));for(int i = 0; i < maxn; i++)g[i].clear();scanf("%d%d", &n, &m);for(int i = 1; i <= n; i++)scanf("%lld", &dis[i]);for(int i = 1; i <= m; i++){int u, v, w;scanf("%d%d%d", &u, &v, &w);g[u].push_back(node(v, w));g[v].push_back(node(u, w));if(!vis[u])vis[u] = 1, q.push(u);if(!vis[v])vis[v] = 1, q.push(v);}spfa();for(int i = 1; i <= n; i++)printf("%lld%c", dis[i], i==n ? '\n' : ' ');}return 0;
}

暴力:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<queue>
using namespace std;
typedef long long ll;
const int maxn = 1e5+5;
ll dis[maxn];
int n, m, u[maxn], v[maxn], w[maxn];int main(void)
{int t;cin >> t;while(t--){scanf("%d%d", &n, &m);for(int i = 1; i <= n; i++)scanf("%lld", &dis[i]);for(int i = 1; i <= m; i++)scanf("%d%d%d", &u[i], &v[i], &w[i]);int bf = 200;while(bf--){for(int i = 1; i <= m; i++)dis[w[i]] = min(dis[w[i]], dis[u[i]]+dis[v[i]]);}for(int i = 1; i <= n; i++)printf("%lld%c", dis[i], i==n ? '\n' : ' ');}return 0;
}

HAUT 1262 魔法宝石 (最短路变形 or 暴力)相关推荐

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

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

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

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

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

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

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

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

  5. 1262: 魔法宝石

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

  6. HAUTOJ 1262: 魔法宝石 24行代码

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

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

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

  8. 1262: 魔法宝石 (“玲珑杯”河南工业大学ACM程序设计大赛)

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

  9. HAUTOJ 1262 魔法宝石

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

最新文章

  1. 优酷智能档在大型直播场景下的技术实践
  2. Python第三、四种数据类型——List(列表) and Tuple(元组)
  3. android 实现定时任务,Android 实现定时任务的过程详解
  4. PHP语法,变量,cookie小结
  5. Samba 3.4.0 发布
  6. 戴尔电脑安装win 7
  7. android gps导航省电,具有省电功能的gps导航系统及其省电方法
  8. JavaScript数据结构学习笔记(封装二叉树)
  9. JS调用摄像头屏幕截图
  10. APP推广的八大“邪恶”方法?做好产品才是王道!
  11. BlackBerry Enterprise Service 10 for Android下载
  12. C语言链表之在指定结点前面或后面插入新的结点
  13. 爱情婚姻 - 苏格拉底
  14. html 置换元素和非置换元素
  15. springboot王道考研课程资料购物网站
  16. python 抓取网页数据
  17. JavaScript 文件下载解决方案-download.js
  18. 2023电信天翼云高级解决方案架构师考试题库-最新版
  19. 音速索尼克 怪人_优势演员评论家方法简介:让我们玩刺猬索尼克!
  20. COBIT5给企业带来什么样的价值

热门文章

  1. C51学习笔记 9.蜂鸣器
  2. html输入框只能扫描枪,输入框禁止手动输入,只允许扫描枪
  3. Python解析SWAN气象雷达数据--(解析、生成ASCII、Image、netCDF)
  4. KISSY基础篇乄KISSY之Node(1)
  5. 一文让你彻底了解EMC防护器件之TVS
  6. English Summary~October
  7. 新浪nbsp;UTnbsp;将于nbsp;6月30日起停止服务
  8. 2020h黑苹果 y7000p_联想拯救者 篇一:联想拯救者Y7000P 2020H测评之联想电脑管家(上)...
  9. OpenCV3中 HOGDescriptor 参数详解
  10. echarts省份地图制作