AtCoder Beginner Contest 327 (ABC327)
A. ab
直接根據題意模擬即可。
Code
B. A^A
直接枚舉 \(i= 1, 2,\dots, 15\),每次看看 \(i ^ i\) 是否等于 \(A\) 即可。
Code
C. Number Place
Description
給你一個 \(9 \times 9\) 的矩陣 \(A\),判斷是否合法,滿足以下三個條件,即為合法。
- 對于每一行,包含數字 \(1 \sim 9\);
- 對于每一列,包含數字 \(1 \sim 9\);
- 將矩陣 \(A\) 從上到下分成三組,每組三行三列。這樣會分成 \(9\) 個 \(3 \times 3\) 的矩陣,每個矩陣也必須包含 \(1 \sim 9\) 的每個數字。
Solution
直接根據題意模擬即可。
每一行每一列不能出現同樣的數字,很好判斷。用 \(cntx\) 數組記錄每一樣每一個數字出現的次數;用 \(cnty\) 數組記錄每一列每個數字出現的次數。
最后判斷 \(cntx_i\) 和 \(cnty_i\) 是否都 \(= 1\) 即可。
再處理第三種情況,將矩陣分成 \(9\) 個 \(3 \times 3\) 的矩陣。這種情況我們可以分別枚舉行的起點和列的起點,每次再從起點循環,就能取出每個小矩陣。
然后再用 \(cnt\) 數組記錄出每個數字出現的次數,最后判斷。
Code
D. Good Tuple Problem
Description
給你兩個長度為 \(M\) 的序列 \(A\) 和 \(B\),滿足以下條件時成為他們是“好的序列”。
- 存在一個長度為 \(N\) 的序列 \(X\),只由 \(0\) 和 \(1\) 組成,滿足以下條件:
- 對于每個 \(i = 1,2,\dots M\),\(X_{A_i} \neq X_{B_i}\)。
現在,請你判斷序列 \((A,B)\) 是否是“好的序列”。
Solution
這道題非常經典,是一個二分圖板子。
使用 DFS 判斷是否是二分圖。
維護數組 \(f\) 來記錄當前的狀態:
- \(f_v = -1\) 表示當前結點 \(v\) 還未被訪問。
- \(f_v = 0/1\) 表示該頂點上寫的是 \(0/1\)。
對于每個 \(v = 1,2, \dots ,M\),執行以下操作:
- 如果 \(f_v \neq -1\),表示已經訪問了節點 \(v\),直接
continue。 - 如果 \(f_v = -1\),說明當前的聯通塊還沒有被訪問過。執行 DFS,從這個節點開始 DFS,執行二分圖黑白染色。
最后判斷這張圖是否是二分圖,輸出答案即可。
Code
其他的不會。
總結
以上是生活随笔為你收集整理的AtCoder Beginner Contest 327 (ABC327)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jenkins原理篇——成员权限管理
- 下一篇: 单个Nginx发布多个react静态页面