時間限制: 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...