在怪物獵人這一款遊戲中,玩家可以通過給裝備鑲嵌不同的裝飾珠來獲取 相應的技能,以提公升自己的戰鬥能力。
已知獵人身上一共有 6 件裝備,每件裝備可能有若干個裝飾孔,每個裝飾孔有各自的等級,可以鑲嵌一顆小於等於自身等級的裝飾珠 (也可以選擇不鑲嵌)。
裝飾珠有 m 種,編號 1 至 m,分別對應 m 種技能,第 i 種裝飾珠的等級為 l
il_i
li,只能鑲嵌在等級大於等於 l
il_i
li 的裝飾孔中。
對第 i 種技能來說,當裝備相應技能的裝飾珠數量達到k
ik_i
ki個時,會產生wi(
ki
)w_i(k_i)
wi(ki
)的價值,鑲嵌同類技能的數量越多,產生的價值越大,即wi(
ki−1
) (ki) w_i(k_)wi (ki −1) (ki )。但每個技能都有上限pi( 1≤pi ≤7 )p_i(1≤p_i≤7) pi(1≤ pi≤ 7),當裝備的珠子數量超過p ip_i pi時,只會產生wi( pi )w_i(p_i) wi(pi )的價值。 對於給定的裝備和裝飾珠資料,求解如何鑲嵌裝飾珠,使得 6 件裝備能得到的總價值達到最大。 輸入的第 1 至 6 行,包含 6 件裝備的描述。其中第i行的第乙個整數n in_i ni表示第i件裝備的裝飾孔數量。後面緊接著n in_i ni個整數,分別表示該裝備上每個裝飾孔的等級l(1≤ l ≤4)。 第 7 行包含乙個正整數 m,表示裝飾珠 (技能) 種類數量。 第 8 至 m + 7 行,每行描述一種裝飾珠 (技能) 的情況。每行的前兩個整數lj( 1≤lj ≤4 )l_j(1≤ l_j ≤4) lj(1≤ lj≤ 4)和p j( 1≤pj ≤7 )p_j(1≤ p_j ≤7) pj(1≤ pj≤ 7)分別表示第 j 種裝飾珠的等級和上限。接下來p jp_j pj個整數,其中第 k 個數表示裝備該中裝飾珠數量為 k 時的價值wj( k) w_j(k) wj(k) 。其中1≤n i≤50, 1≤m≤ 104, 1≤wj (k)≤ 10 41 ≤ n_i ≤ 50,1 ≤ m ≤ 10^4,1 ≤ w_j(k) ≤ 10^4 1≤ni≤ 50,1 ≤m≤1 04,1 ≤wj (k)≤ 104。 本題是選擇性問題,很顯然題目的本質是乙個揹包問題。6個裝備可以看成同乙個裝備,孔的等級才是關鍵。 我們觀察兩個不同的等級的珠子l和l-1。對於l而言它可以放入l ~ 4的孔中,而l-1能放入l-1 ~ 4的孔中。即l的珠子能放的孔,l-1必然可以放,我們就可以將l從大到小進行珠子的列舉,注意每次等級變化會將揹包的容量也擴大。 再考慮乙個種類的珠子的放入,放入只考慮0 ~ p ip_i pi,且我們只可能從中選擇乙個,這就是經典的分組揹包問題,所以每乙個種類的珠子就是乙個分組,僅可選擇其中的乙個,空間複雜度就為o(6 n) o(6n) o(6n ),n為每個裝備的最多孔數。 時間複雜度為o(m logm+ m∗6∗ n∗7) =o(m logm+ 2100m) o(m\log +m*6*n*7 ) = o(m\log + 2100m) o(mlogm+ m∗6∗ n∗7) =o(m logm+2 100m )#
include
#include
#include
using
namespace std;
const
int n =
305, m =
1e4+5;
int cnt[5]
;int n,m,dp[n]
;struct
node
}p[m]
;int
main()
} cin>>m;
for(
int i =
1; i <= m ; i ++
)sort
(p+1
,p+m+1)
;memset
(dp,
0x80
,sizeof dp)
, dp[0]
=0;int ans =
0, sum =
0, i =1;
for(
int l =
4; l >=
1; l--)}
i++;}
}for
(int i =
0; i <= sum; i++
) ans =
max(ans, dp[i]);
cout } 題目描述 在怪物獵人這一款遊戲中,玩家可以通過給裝備鑲嵌不同的裝飾珠來獲取 相應的技能,以提公升自己的戰鬥能力。已知獵人身上一共有 6 件裝備,每件裝備可能有若干個裝飾孔,每個裝飾孔有各自的等級,可以鑲嵌一顆小於等於自身等級的裝飾珠 也可以選擇不鑲嵌 裝飾珠有 mm 種,編號 1 至 mm,分別對應... begin 1 a b問題str1 input str2 str1.split s int str2 0 int str2 1 print s begin 2 序列求和s int input 用公式計算而不用迴圈,避免超時 n s s 1 2print int n begin 3 圓的面積impor... 問題描述 同在乙個高中,他卻不敢去找她,雖然在別人看來,那是再簡單不過的事。暗戀,是他唯一能做的事。他只能在每天課間操的時候,望望她的位置,看看她傾心的動作,就夠了。操場上的彩磚啊,你們的位置,就是他們能夠站立的地方,他倆的關係就像磚與磚之間一樣固定,無法動搖。還記得當初鋪磚的工人,將整個操場按正方...藍橋杯 裝飾珠 動態規劃, 2020, 省賽
藍橋杯入門訓練 藍橋杯備賽
藍橋杯 暗戀