給出乙個 \(n×m\) 大小的矩形,每個位置可以填上$ [1,c]$中的任意乙個數,要求填好後任意兩行互不等價且任意兩列互不等價,兩行或兩列等價當且僅當對應位置完全相同,求方案數 。
\(n,m\le 5000\)
確實是一道神仙題。
對這種行列都有限制的題我們可以先只考慮一邊。
我們先只考慮讓行之間互不等價,乙個\(n行m列\)且行互不等價的矩形的方案數為\((c^m)^}\)。
我們設\(g(m)\)表示行互不等價的情況下,\(m\)列的矩形的方案數。\(g(m)=(c^m)^}\)。
我們設\(f(m)\)表示行和列都分別互不等價的情況下,\(m\)列的矩形的方案數,也就是我們要的答案。
則:\[g(m)=\sum\limits_^m\beginm\\i \endf(i)
\]這個式子的意義就是我們列舉\(m\)列分成了\(i\)個互不等價的集合,再將這\(m\)列分配到這些集合中去。
由斯特林反演得到:
\[f(m)=\sum\limits_^m(-1)^\beginm\\i \endg(i)
\]於是我們就可以\(o(n^2)\)計算了。
**:
#include#define ll long long
#define mod 1004535809
#define n 5005
using namespace std;
inline int get() while('0'<=ch&&ch<='9') return x*f;}
int t;
ll n,m,c;
ll s1[n][n],g[n];
int main()
cout<} return 0;
}
雅禮集訓 2018 Day4 Magic
傳送門本部分 於 這位大佬 題中要求本質不同的序列數量,不太好搞。我們考慮給相同顏色的牌加上編號,這樣所有牌都不相同。那麼如果我們求出了答案,只需要將答案除以 prod a i 就好了。恰好有 k 對 不能直接求,考慮容斥,如果我們求出了 g x 表示至少有 x 對的方案數,那麼答案即為 sum l...
雅禮集訓 2018 Day7 A 題解
題意 雅禮集訓 2018 day7 a 題解 線段樹處理。考慮只有一種與的操作。顯然當乙個區間的或和與上將要與的數還是原數時就沒必要遞迴計算了,剪枝剪掉。當一段區間與和與上將要與的數等於這段區間或和與上將要與的數時,更新後這段區間的最小值位置還是更新前的位置。由於一次操作至少將數的乙個二進位制改變,...
2018雅禮集訓1 12 小C飲水記
題面 考場上sb用set,式子還沒化成o t 的,總複雜度o ntlogn n t2 70分滾粗。首先對於一段長度為 k 區間,假設按w1 wk的順序來選,貢獻為 i 1kw i2i 所以顯然要按從大到小的順序來選,然後發現本題不要求取模,所以當 i 很大時,wi 的貢獻就可以忽略不計了。所以我們只...