HAUT校賽 魔法寶石 暴力

2021-07-31 05:33:49 字數 1384 閱讀 7994

時間限制: 2 秒  記憶體限制: 64 mb

提交: 505  解決: 149 提交

狀態 題目描述

小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 101 2 3
樣例輸出

1 1 2

顯然,每次更新最值小值就可以了,我把資料開到了1e2,這個應該滿足上界了。

#include #include #include #include #include #include #include #include #include #include #include #include //#include //#define loacl

#define space " "

#define lson o<<1, l, mid

#define rson o<<1|1, mid+1, r

#define ll o<<1

#define rr o<<1|1

using namespace std;

typedef long long ll;

//typedef __int64 int;

typedef pairpai;

const int inf = 0x3f3f3f3f;

const double esp = 1e-5;

const double pi = acos(-1.0);

const int mod = 1e9 + 7;

const int maxn = 1e5 + 10;

const int max = 3000;

int ar[maxn];

struct node

data[maxn];

int main(int argc, char const *argv)

for (int i = 0; i < 1e2; i++)

}printf("%d", ar[1]);

for (int i = 2; i <= n; i++)

printf("\n");

}return 0;

}

haut 1262 魔法寶石 dij 堆優化)

時間限制 2 秒 記憶體限制 64 mb 提交 346 解決 85 提交 狀態 題目描述 小s想要創造n種魔法寶石。小s可以用ai的魔力值創造一棵第i種魔法寶石,或是使用兩個寶石合成另一種寶石 不消耗魔力值 請你幫小s算出合成某種寶石的所需的最小花費。輸入 第一行為資料組數t 1 t 3 對於每組資...

魔法寶石 spfa

時間限制 2 秒 記憶體限制 64 mb 提交 248 解決 48 提交 狀態 題目描述 小s想要創造n種魔法寶石。小s可以用ai的魔力值創造一棵第i種魔法寶石,或是使用兩個寶石合成另一種寶石 不消耗魔力值 請你幫小s算出合成某種寶石的所需的最小花費。輸入 第一行為資料組數t 1 t 3 對於每組資...

魔法寶石(思維啊 )

時間限制 2 秒 記憶體限制 64 mb 題目描述 小s想要創造n種魔法寶石。小s可以用ai的魔力值創造一棵第i種魔法寶石,或是使用兩個寶石合成另一種寶石 不消耗魔力值 請你幫小s算出合成某種寶石的所需的最小花費。輸入 第一行為資料組數t 1 t 3 對於每組資料,首先一行為n,m 1 n,m 10...