2023年 河南工業大學校賽 C題 魔法寶石

2022-07-30 00:03:18 字數 1220 閱讀 9093

時間限制: 2 秒  記憶體限制: 64 mb  |  提交: 582  解決: 187

題目描述

小s想要創造n種魔法寶石。小s可以用a

i的魔力值創造一棵第i種魔法寶石,或是使用兩個寶石合成另一種寶石(不消耗魔力值)。請你幫小s算出合成某種寶石的所需的最小花費。

輸入第一行為資料組數t(1≤t≤3)。

對於每組資料,首先一行為n,m(1≤n,m≤10^5)。分別表示魔法寶石種類數和合成魔法的數量。

之後一行n個數表示a1到a

n。(1≤a

i≤10^9)。a_i表示合成第i種寶石所需的魔力值。

之後n行,每行三個數a,b,c(1≤a,b,c≤n),表示乙個第a種寶石和第b種寶石,可以合成乙個第c種寶石。

輸出每組資料輸出一行n個數,其中第i個數表示合成第i種寶石的魔力值最小花費。

樣例輸入

1

3 11 1 10

1 2 3

樣例輸出
1 1 2

思路:由於寶石 可以由其他兩種寶石 合成而來 , 所以可以通過合成寶石的方式 來使用更少的魔力 製造出寶石 ,

注意 乙個寶石可以由兩個 子寶石 合成而來 , 而 子寶石也可能由 兩個子寶石 合成而來 。。。。。

所以 只遍歷 一遍 優化寶石合成所需要的 魔力 是不夠的 , 而且也不確定需要 鬆弛多少次 ,

這個時候應該就能想到 spfa 演算法了

#include #include 

#include

#include

using

namespace

std ;

#define maxn 110000

#define ll long long

intnum[maxn] ;

intsum[maxn] ;

inta , b , c ;

intt , n , m ;

struct

node ;

node edge[maxn] ;

void

spfa() }}

}int

main()

for(int i=1 ; i<=m ; i++)

spfa() ;

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

else

}printf("\n

") ;

}return0;

}

2023年 河南工業大學校賽 H題 ch追妹

時間限制 2 秒 記憶體限制 128 mb 提交 241 解決 119 題目描述 n個點的一張無向圖,ch站在a點,ch要追的妹子站在b點。r clover為了讓ch安心訓練,要阻止ch追妹。ch每走一步,r clover就會挖斷一條路。ch和r clover均採用最優策略,問ch能不能追到妹子 輸...

2023年 河南工業大學校賽 A題 饒學妹的比賽

時間限制 1 秒 記憶體限制 64 mb 提交 385 解決 120 題目描述 饒學妹組織了一場acm賽制的比賽,大家紛紛慕名來參加。比賽中大家交題只會有兩種結果 ac,wa。比賽結束了,饒學妹製作榜單啦。首先按ac題目的數目 重複ac一道題只算一次 從多到少排名 ac題目數目相同的同學按罰時 罰時...

2023年 河南工業大學校賽 I 題 小天使改名

時間限制 2 秒 記憶體限制 128 mb 提交 496 解決 136 題目描述 小天使的b站帳號被大家發現啦。於是小天使決定改名,將他原有id中的兩個不同位置的字母進行交換。小天使有可能將兩個不同位置的相同字母進行交換,雖然這樣做他的id並沒有發生變化 lsf知道小天使原來的id,他想知道某個id...