1.題目鏈結。小hi在玩乙個遊戲,他需要把1, 2, 3, ... nm填入乙個n行m列的矩陣中,使得矩陣每一行從左到右、每一列從上到下都是遞增的。
2.這是楊氏矩陣的乙個性質,其實這個題目的本質就是在求1-nm這nm個數字,可以構造出多少個n*m楊氏矩陣。
首先對於楊氏矩陣,n個數,可以構成的楊氏矩陣的數量,在不加形狀限制的情況下:可以從遞推公式得到。
f[i]代表i個數構成的楊氏矩陣的數量,f[1]=1,f[2]=2,f[n]=f[n-1]+(n-1)(f[n-2]).(這個遞推很眼熟????)。但是對於給定形狀的楊氏矩陣,數量可以通過鉤子定理計算:對於給定形狀,不同的楊氏矩陣的個數為:n!/(每個格仔的鉤子長度加1的積)。
其中鉤子長度定義為該格仔右邊的格仔數和它上邊的格仔數之和。
然後這個題就沒了,主要是知道了一下楊氏矩陣和鉤子定理。
#includeusing namespace std;
#define ll long long
const ll mod = 1e9 + 7;
ll qpow(ll a, ll b)
return res;
}int main()
} cout << ans << endl;
}}
(小白書學習筆記) 蛇形填數(矩陣)
題目 在n n方陣裡填入 1,2,3,n n,要求填寫成蛇形,例如 n 4時的方陣為 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 從1開始順時針劃一圈,大家就會發現是個蛇形的樣子 lrj 的解法是,我們從1開始,假設有一支 筆 它的座標為 x,y 那麼,將這個 蛇形...
bzoj 5010 Fjoi2017 矩陣填數
給定乙個 h w 的矩陣,矩陣的行編號從上到下依次為 1.h,列編號從左到右依次1.w。在這個矩陣中你需要在每 個格仔中填入 1.m 中的某個數。給這個矩陣填數的時候有一些限制,給定 n 個該矩陣的子矩陣,以及該子矩陣的 最大值 v,要求你所填的方案滿足該子矩陣的最大值為 v。現在,你的任務是求出有...
bzoj5010 FJOI2017 矩陣填數
給定乙個 h w 的矩陣,矩陣的行編號從上到下依次為 1.h,列編號從左到右依次1.w。在這個矩陣中你需要在每 個格仔中填入 1.m 中的某個數。給這個矩陣填數的時候有一些限制,給定 n 個該矩陣的子矩陣,以及該子矩陣的 最大值 v,要求你所填的方案滿足該子矩陣的最大值為 v。現在,你的任務是求出有...