Re: [閒聊] 每日leetcode
今天這題之前寫過
做一次operation,原本是指對edge的兩個node同時做xor with k
但其實可以把operation給轉換成: 對tree的任兩個node同時做xor with k
原因是當任兩個node有connect
只要對path上所有edge的端點node都做一次operation
就會等於對這任兩點做xor with k了
所以這題可以轉換成
對所有node做總共偶數次xor with k,能得到的最大sum是多少
用dp就可以結束惹
def maximumValueSum(self, nums, k, edges):
"""
:type nums: List[int]
:type k: int
:type edges: List[List[int]]
:rtype: int
"""
maximum_odd_cur = nums[0]^k
maximum_even_cur = nums[0]
for i in range(1, len(nums)):
maximum_odd_cur, maximum_even_cur = max(maximum_even_cur+(nums[i]^k),
maximum_odd_cur+nums[i]), max(maximum_odd_cur+(nums[i]^k), maximum_even_cur+
nums[i])
return maximum_even_cur
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.21.119.51 (日本)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1747972648.A.996.html
※ 編輯: DJYOMIYAHINA (1.21.119.51 日本), 05/23/2025 11:58:19
推
05/23 12:01,
6月前
, 1F
05/23 12:01, 1F
→
05/23 12:03,
6月前
, 2F
05/23 12:03, 2F
→
05/23 12:03,
6月前
, 3F
05/23 12:03, 3F
推
05/23 12:11,
6月前
, 4F
05/23 12:11, 4F
討論串 (同標題文章)
完整討論串 (本文為第 1434 之 1548 篇):