#36625: 解題想法


frankleeplayminecraft58@gmail. ... (LJH-code)

學校 : 高雄市立前鎮高級中學
編號 : 119456
來源 : [140.114.217.88]
最後登入時間 :
2024-09-02 22:58:20
d841. NOIP2003 3.加分二叉树 -- NOIP2003提高组第三题 | From: [61.61.93.180] | 發表日期 : 2023-07-30 08:04

可以朝 dp 的方向去想,令 dp[i][l][r] 代表在中序區間 [l, r] 中以 i 為根結點去構造出一棵樹的最大分數

那轉移就是 dp[i][l][r] = max(dp[j][l][i - 1] * dp[k][i + 1][r] + a[i]), j \in [l, i), k \in (i, r]

記得考慮 basecase 跟 左/右子樹為空的情況

回朔的部分就是用 dp 紀錄的答案去回朔就好,但是可能有多組解,請輸出字典序最小的那個

 
#36632: Re: 解題想法


fire5386 (becaidorz)

學校 : 國立清華大學
編號 : 115822
來源 : [140.114.253.147]
最後登入時間 :
2024-10-03 15:39:22
d841. NOIP2003 3.加分二叉树 -- NOIP2003提高组第三题 | From: [1.161.158.122] | 發表日期 : 2023-07-30 17:16

可以朝 dp 的方向去想,令 dp[i][l][r] 代表在中序區間 [l, r] 中以 i 為根結點去構造出一棵樹的最大分數

那轉移就是 dp[i][l][r] = max(dp[j][l][i - 1] * dp[k][i + 1][r] + a[i]), j \in [l, i), k \in (i, r]

記得考慮 basecase 跟 左/右子樹為空的情況

回朔的部分就是用 dp 紀錄的答案去回朔就好,但是可能有多組解,請輸出字典序最小的那個


不愧是 daniel

 
#36633: Re: 解題想法


frankleeplayminecraft58@gmail. ... (LJH-code)

學校 : 高雄市立前鎮高級中學
編號 : 119456
來源 : [140.114.217.88]
最後登入時間 :
2024-09-02 22:58:20
d841. NOIP2003 3.加分二叉树 -- NOIP2003提高组第三题 | From: [61.61.93.180] | 發表日期 : 2023-07-30 18:39

可以朝 dp 的方向去想,令 dp[i][l][r] 代表在中序區間 [l, r] 中以 i 為根結點去構造出一棵樹的最大分數

那轉移就是 dp[i][l][r] = max(dp[j][l][i - 1] * dp[k][i + 1][r] + a[i]), j \in [l, i), k \in (i, r]

記得考慮 basecase 跟 左/右子樹為空的情況

回朔的部分就是用 dp 紀錄的答案去回朔就好,但是可能有多組解,請輸出字典序最小的那個


不愧是 daniel

daniel07 你真的太諧了

 
ZeroJudge Forum