時間限制: 2 秒 記憶體限制: 64 mb
提交: 346 解決: 85 提交
狀態 題目描述
小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,c≤n),表示乙個第a種寶石和第b種寶石,可以合成乙個第c種寶石。 輸出
每組資料輸出一行n個數,其中第i個數表示合成第i種寶石的魔力值最小花費。
樣例輸入
13 11 1 10
1 2 3
樣例輸出
1 1 2
提示**
#include #include using namespace std;
typedef long long ll;
typedef pairq;
const int n = 1e5+7;
const int inf = 0x3f3f3f3f;
const int mod = 10007;
int a[n];
vectorp[n];
int n, m;
int vis[n];
void bfs()}}
return ;}
int main()
for(int i=0;i
HAUT校賽 魔法寶石 暴力
時間限制 2 秒 記憶體限制 64 mb 提交 505 解決 149 提交 狀態 題目描述 小s想要創造n種魔法寶石。小s可以用ai的魔力值創造一棵第i種魔法寶石,或是使用兩個寶石合成另一種寶石 不消耗魔力值 請你幫小s算出合成某種寶石的所需的最小花費。輸入 第一行為資料組數t 1 t 3 對於每組...
HAUTOJ 1262魔法寶石 優先佇列
題目鏈結 比賽場上是暴力懟過去的,回來補題學了個優先佇列的想法 因為寶石的合成情況可能有巢狀,比如1和2生成3,1和3生成2,2和3生成1,如果用dp去做的話,那麼就會形成乙個迴路,就沒辦法當做樹形dp搞了 所以我們要想到,如果出現了某個生成環,那麼其環三個元素中,魔力值最小的那個一定不可被更新,所...
魔法寶石 spfa
時間限制 2 秒 記憶體限制 64 mb 提交 248 解決 48 提交 狀態 題目描述 小s想要創造n種魔法寶石。小s可以用ai的魔力值創造一棵第i種魔法寶石,或是使用兩個寶石合成另一種寶石 不消耗魔力值 請你幫小s算出合成某種寶石的所需的最小花費。輸入 第一行為資料組數t 1 t 3 對於每組資...