UVa10507 - Waking up brain(BFS)

題目大意:

近代的研究指出如果要喚醒腦袋的區域時,必須要附近三塊的腦袋都是清醒的狀況才有辦法喚醒此區域,我們會給你已經清醒的區域,還有哪些區域是有連結的,想請問多久後才可以將腦袋中所有區域喚醒成功?

P.S. 喚醒需要一年的時間,請輸出多久可以喚醒,如果沒辦法喚醒輸出 “THIS BRAIN NEVER WAKES UP”,可以就輸出 “WAKE UP IN, n, YEARS”, where n is the number of the years all the brain has taken to wake up

題目連結

閱讀更多...

演算法知識 - Disjoint Set 並查集

Disjoint Set 介紹與應用

Disjoint Set 並查集是資料結構的其中一種,主要用來處理元素間的合併與查詢,並查集有 2 種操作

  • 查詢 查詢某個元素是在哪個集合中,通常是返回集合內的代表元素,也就是在查詢此集合中的任一元素時,都會傳回此元素
  • 合併 將兩個集合合併成一個

由於此兩操作時間複雜度都是 \(O(\log_n\),且編寫容易,因此受到大量地使用,是個很棒的資料結構

閱讀更多...

Codeforces 1474D - Array Destruction (設計解題、數學推理)

題目大意:

有一個遊戲規則,遊戲規則如下:
有 x 堆的石頭,每堆石頭都可以跟鄰近的石頭進行移除,移除方式為雙方各移除 y 顆石頭,移除數量必須小於石頭數量,最終要求為要讓所有堆的石頭全部數量歸零。

特殊規則:可以有一次將兩堆石頭進行交換。

題目連結

閱讀更多...

Codeforces 1474C - Array Destruction (設計解題、數學推理)

題目大意

有一個陣列,裡面只有正整數,要進行以下操作:

  • 一開始先選出某一數字為 \(x\)
  • 移除陣列中的兩個元素,定義 \(a,b\),移除時必須符合此公式 \(a+b=x\)
  • 之後必須將 \(max(a,b) = x \),讓 a or b 中的最大值成為 x

如果可以透過規則讓陣列元素全部被清空就輸出 “Yes”,否則就輸出 “NO”

舉例: \(a = [3,5,1,2] \),那清空的操作如下

  • \(x=6=5+1\)
  • \(x=5=2+3\)

題目連結

閱讀更多...

UVa12863 - Journey through the kingdom(A*搜尋 、2D BIT)

題目大意

ICPC 是一家保全公司,負責將重要的資料從 A 地搬運到 B 地,此地圖是個表格,我們會告訴你每一個點 (i,j),能夠到的最大的距離與成本,接下來請寫一個程式告訴我們從 A 地到 B 地的最小成本。

提供 3 個 n*m 的陣列,第一個是成本陣列、第二個是每一個節點最大可以走幾個 Row、第三個則是每一個節點最多可以走 Column。

此題為嚴格輸出比對,需要完全的嚴謹。
題目連結

閱讀更多...
  • © 2020-2024 John Doe
  • Powered by Hexo Theme Ayer
  • PV: UV: