Problem
給一個管理階層圖 (DAG),一名員工可能被很多上司管理
- 員工之間可能會交換職位
- 詢問某名員工最年輕的上司年紀為何 (包含上司的上司 …)
Sample Output
|
|
Sample Output
|
|
Solution
粗劣一點暴力將圖的上司全找到,接著使用映射將員工和年齡的關係圖修正。
|
|
給一個管理階層圖 (DAG),一名員工可能被很多上司管理
|
|
|
|
粗劣一點暴力將圖的上司全找到,接著使用映射將員工和年齡的關係圖修正。
|
|
求兩個無根樹,請問這兩個樹是否同構。
|
|
|
|
找到樹的最小表示法,用括號來表示一棵樹,則可以對所有的子樹的最小表示法做排序,就可以構成這個樹的最小表示法。一直遞歸下去就可以得到最小表示法。
但是這個最小表示法只能用在有根樹,因此對於無根樹利用拓樸排序找到樹的中心 (一個或者是兩個)。
因此最後相互比較中心的情況。
這一題為了加快可以使用 hash,而把字串比較和排序撇開,但是千萬不要拿不同中心兩個 hash 取最小值,再進行同構比較。原因會發生在於中心的取捨,如果直接定義拓樸最後兩個點作為中心,則有可能一點不是中心,那麼就會造成分析上的錯誤。
|
|
將所有數字中出現 4 或者是 13 為子字串排除,將剩餘數字排序後,根據輸入輸出 i-th 的結果為何。(傳統避諱的樓層命名方式)
|
|
|
|
dp[i][0]
表示長度為 i 的情況下,不以 3 開頭的所有符合數字dp[i][1]
表示長度為 i 的情況下,以 3 開頭的所有符合數字接著,企圖添加 digit 在長度為 i-1 的數字前面,只要不添加 1 湊出 13 即可。直接禁用 4 就沒有什麼問題。
而隨後要輸出 i-th 的時候,用扣的方式依序得到 lower_bound。
|
|
每一個序列,每次只能拿走首元素或者尾元素,Alberto 和 Wanderley 輪流取牌,由 Alberto 先手,請問遊戲最後 Alberto 最高能得多少分,而 Wanderley 會盡力阻止她。
|
|
|
|
照著 dp 的思路下去,因為要輪流取,而 Wanderley 只會想要最小化 Alberto 分數,不會考慮自己的分數,因此轉移的時候會盡可能地小。
dp[i][j]
表示當前剩餘長度為 i, 起始首元素為 j,由於狀態太多,必須靠滾動數組來完成 dp。
|
|
給彈珠檯的高度和寬度,以及左右兩側延伸出的平台,問彈珠滾落的最大直徑為何?
|
|
|
|
兩線段最近距離
|
|
Given a 2x2xN box, in how many ways can you fill it with 1x1x2 blocks?
Input Format
The input starts with an integer T - the number of test cases (T <= 10,000). T cases follow on each subsequent line, each of them containing the integer N (1 <= N <= 1,000,000).
For each test case, print the number of ways to fill the box modulo 1,000,000,007
|
|
|
|
把幾種情況畫出來,會發現有一種特別的之之型,最後會接上一個 1x2 的來湊滿一個 2 x 2 x N 的情況,為此我們必須要知道有多少這種之之型可以從哪裡拆分出來。
會在代碼中發現一個變數 c 存放的便是以之之型結束的方法數,之之型可以把最後一個 1x2 拿走,繼續延伸。
|
|
|
|
The first line of input will contain T (≤ 4*105) denoting the number of operations. Each of the next T lines starts with a character (‘A’, ‘B’, ‘C’ or ‘S’), which indicates the type of operation. Character ‘A’, ‘B’ or ‘S’ will be followed by two integers, st and nd in the same line. Character ‘C’ is followed by three integers, st, nd and x. It’s assumed that, 1 ≤ st ≤ nd ≤ 250000 and -105 ≤ x ≤ 105. The meanings of these integers are explained by the code of Rip Van Winkle.
For each line starting with the character ‘S’, print S( st, nd ) as defined in the code. Dataset is huge, so use faster I/O methods.
|
|
Output for Sample Input
紀錄該區間的首項和公差即可,保證公差可以疊加。
|
|
求 N! 的因數中最大的完全平方數。
|
|
|
|
對 N! 做因數分解。
|
|
現在只有 0 - 9 共計 10 根蠟燭,有 N 個人過生日,每個人的生日年紀不大於 100。
最多用 10 根蠟燭,來表示每一個人的生日。每個人的生日可以用兩個整數加總,或者單純用一個整數表示。
|
|
|
|
預建表,找到所有數字 [1, 100]
能用哪幾種蠟燭建出來。
測資很緊,不建表會一直 TLE。
|
|
給一無向圖,問任兩點是否存在唯一的路徑到達。
|
|
|
|
唯一路徑,保證 x - y 之間走過的只會有橋 (由很多橋構成),將所有橋找到,並且將橋兩端利用并查集合併 (構成大橋)
|
|