將每乙個 \(1\) 和 \(-1\) 看成向上和向右,那麼就轉換成從 \((0,0)\) 到 \((n,m)\) 的方案數。
列舉答案 \(i\),那麼顯然這條路徑不能與 \(y=x+i+1\) 相交。那麼答案不超過\(i\) 的方案數就是從 \((0,0)\) 到 \((n,m)\) 的方案數減去 \((0,0)\) 關於直線對稱的點到 \(n,m\) 的方案數。即為
\[c^_-c^_
\]注意答案為 \(i\) 的方案數為這個數減去答案不超過 \(i-1\) 的方案數。
預處理階乘和逆元即可。
#include using namespace std;
typedef long long ll;
const int n=2000010,mod=998244853;
ll ans,pre,fac[n],inv[n];
int n,m;
ll fpow(ll x,int k)
ll c(int a,int b)
int main()
printf("%lld",(ans+mod)%mod);
return 0;
}
字首和 求價值最大矩形
problem description 給你乙個m n的整數矩陣,在上面找乙個x y的子矩陣,使子矩陣中所有元素的和最大。input 輸入資料的第一行為乙個正整數t,表示有t組測試資料。每一組測試資料的第一行為四個正整數m,n,x,y 0output 對於每組資料,輸出乙個整數,表示子矩陣的最大和。...
PKUSC2018 最大字首和
看資料範圍認解法 首先在每種情況出現概率相同的情況下,期望 times 方案數 權值和 即題意就是讓你求所有排列的最大字首和的總和 我們可以列舉哪些數是最大字首,顯然這些數內部任意交換順序 其它數內部任意交換順序 都不會改變這個最大字首。一些數要排到前面去成為最大字首,條件是該字首除整段外的所有字尾...
最大的和 最大子矩陣和 貪心 字首和 dp
給定乙個包含整數的二維矩陣,子矩形是位於整個陣列內的任何大小為1 1或更大的連續子陣列。矩形的總和是該矩形中所有元素的總和。在這個問題中,具有最大和的子矩形被稱為最大子矩形。例如,下列陣列 0 2 7 0 9 2 6 2 4 1 4 1 1 8 0 2其最大子矩形為 9 2 4 1 1 8它擁有最大...