原创 洛谷 #2733. 家的範圍

題意 在一個邊長爲n的正方形矩陣中,尋找邊長爲2~n的全1矩陣的個數 題解 按邊長找,每次的g[i][j](bool)表示當前邊長下起點爲i,j的矩陣是否符合要求 若g[i][j]、g[i + 1][j]、g[i][j + 1]、g[

原创 洛谷 #1563. 玩具謎題

題意 有一圈人朝圈內或圈外,從1號開始,有多個指令表示從當前往 左/右 數幾個,問最後的位置 題解 一道水題 模擬即可 調試記錄 pos對n取模時沒有判斷pos==n的邊界 #include <cstdio> #define maxn

原创 AtCoder #Contest 023-D. Go Home

題意 數軸上的整數節點住着一些人,下班後,他們要從公司(與homes不重疊,座標爲s)回家 每個人都很\(\mathbb{SELFISH}\),他們總是希望自己早點回家,只有一輛車,開的方向投票決定,問最小短路徑 題解 坑點:self

原创 bzoj #2152. 聰聰可可

題意 在一棵樹上任取兩點,問這兩點間路徑和爲3倍數的最簡概率 題解 樹形Dp,f[x][0/1/2]記錄x點以下(默認1爲根) mod 3 = 0/1/2 的邊的個數 \(\ f[x][0]\equiv0\)\(\pmod{3}\)

原创 洛谷 #3379. 【模板】LCA

倍增 用\(f[cur][i]\)表示\(cur\)的第\(\ 2^i\)個祖先 \(f[cur][i] = f[f[cur][i-1]][i-1]\) 因爲\(\ 2{i-1}+2{i-1}=2^i\) 調試記錄 \(f[cur][

原创 洛谷 #1541. 烏龜棋

題意 n個格子中有一些分數,到達一個格子就可以拿到。初始在1,n爲終點 有m張牌,保證用完剛好到達終點。牌有向前移動1,2,3,4格四種,求最高分數 題解 dp[j1][j2][j3][j4]表示用j1張‘1’牌,j2張‘2’牌,j3

原创 POJ #3107. 教父

題意 求一棵樹的多個重心並按照字典序輸出 題解 求樹的重心 調試記錄 無 #include <cstdio> #include <algorithm> #define maxn 500005 #define INF 0x3f3f3f

原创 洛谷 #2822. 組合數問題

題意 t組數據,問當0≤i≤n,i<j≤m中,有幾組\(C_{i}^{j}\)能整除k 題解 依舊找規律,發現是\(\mathbb{YANGHITRIANGLE}\) 調試記錄 楊輝三角要加前綴和,不然會TLE #include <c

原创 洛谷 #1312. Mayan遊戲(dfs)

題意 在一個7行5列的期盤中,有至多10種顏色的方塊。當這些方塊下方空的時候,這些方塊總是會垂直掉落#### 當有3個顏色相同的方塊排成一行或一列時,它們會被同時消除 你需要在給定的步數內,通過調換相鄰方塊,使棋盤上沒有方塊。 若做不

原创 SOJ #292. 通信與網絡

題意 仔細觀察後,即是求k個源點到k個匯點的路徑數組成的行列式的值 題解 Floyd(Dp)處理路徑數,然後Gauss消元 調試記錄 求路徑數沒有mod operator真是好東西 #include <cstdio> #include

原创 洛谷 #3389. 高斯消元解線性方程組

題意 如題 題解 自己看線代的書 對增廣矩陣進行高斯消元,再回代 若當前主元係數爲0,則要將下方係數不爲0的方程與其交換,若找不到則無解 調試記錄 無 #include <cstdio> #include <cmath> #inclu

原创 洛谷 #1351. 聯合權值

題意 一棵樹上距離爲2的兩個節點的權值相乘,問max和sum 題解 70分:枚舉每個節點,它的兩個兒子必定距離爲2,相加、取max即可(會T) 100分:注意到,一個節點的兒子中,互相都要乘 根據乘法分配律,我先預處理它兒子的權值和,

原创 洛谷 #2615. 神奇的幻方

題意 首先將 1 寫在第一行的中間。 若 (K-1) 在第一行但不在最後一列,則將 K 填在最後一行, (K−1) 所在列的右一列; 若 (K-1) 在最後一列但不在第一行,則將 K 填在第一列,(K−1) 所在行的上一行; 若 (K

原创 洛谷 #2661. 信息傳遞

題意 在有 \(\ n\) 條邊的圖中找最短路 題解 並查集,維護父親及路徑長度 調試記錄 無 #include <cstdio> #include <algorithm> #define maxn 200005 #define IN

原创 洛谷 #2678. 跳石頭

題意 在 \(\ n\) 個數中合併 \(\ m\) 個,使 \(\ min\) 最大 題解 二分答案 調試記錄 r = mid - 1; l = mid + 1,不然會死循環 二分好久沒寫了 #include <cstdio> #i