小朋友 a 在和 ta 的小夥伴們玩傳資訊遊戲,遊戲規則如下:
有 n 名玩家,所有玩家編號分別為 0 ~ n-1,其中小朋友 a 的編號為 0
每個玩家都有固定的若干個可傳資訊的其他玩家(也可能沒有)。傳資訊的關係是單向的(比如 a 可以向 b 傳資訊,但 b 不能向 a 傳資訊)。
每輪資訊必須需要傳遞給另乙個人,且資訊可重複經過同乙個人
給定總玩家數 n,以及按 [玩家編號,對應可傳遞玩家編號] 關係組成的二維陣列 relation。返回資訊從小 a (編號 0 ) 經過 k 輪傳遞到編號為 n-1 的小夥伴處的方案數;若不能到達,返回 0。
示例 1:
輸入:n = 5, relation = [[0,2],[2,1],[3,4],[2,3],[1,4],[2,0],[0,4]], k = 3
輸出:3
解釋:資訊從小 a 編號 0 處開始,經 3 輪傳遞,到達編號 4。共有 3 種方案,分別是 0->2->0->4, 0->2->1->4, 0->2->3->4。
示例 2:
輸入:n = 3, relation = [[0,2],[2,1]], k = 2
輸出:0
解釋:資訊不能從小 a 處經過 2 輪傳遞到編號 2
限制:2 <= n <= 10
1 <= k <= 5
1 <= relation.length <= 90, 且 relation[i].length == 2
0 <= relation[i][0],relation[i][1] < n 且 relation[i][0] != relation[i][1]
dfs
classsolution:
def numways(self, n: int, relation: list[list[int]], k: int) ->int:
self.n,self.k,self.res=n,k,0
self.dict=collections.defaultdict(list)
for x,y in
relation:
self.dfs(0,0)
return
self.res
defdfs(self,index,num):
if num==self.k:
if index==self.n-1:
self.res+=1
return
for i in
self.dict[index]:
self.dfs(i,num+1)
dp
classsolution:
def numways(self, n: int, relation: list[list[int]], k: int) ->int:
a=[1]+[0]*(n-1)
for i in
range(k):
b=[0]*n
for x,y in
relation:
b[y]+=a[x]
a=breturn a[-1]
元件間傳遞資訊
父元件到子元件通訊 1 prop 父子元件 父子通訊中最常見的資料傳遞方式就是通過props傳遞資料,就好像方法的傳參一樣,父元件呼叫子元件並傳入資料,子元件接受到父元件傳遞的資料進行驗證使用 props 可以是陣列或物件,用於接收來自父元件的資料。props 可以是簡單的陣列,或者使用物件作為替代...
iframe父子傳遞資訊
1.子向父通訊 parent.html window.addeventlistener message function e child.html window.parent.postmessage 2.父向子通訊 parent.html var myframe document.getelemen...
C 視窗傳遞資訊
方法1 在form1中通過postmessage傳送訊息,在form2通過defwndproc截獲訊息來相互作用,具體參見我先前的文章 c 收發和處理自定義的windows訊息 方法2通過第三方 公共類的公共靜態成員來實現 class class1 在form1中賦值class1.str 傳入的內容...