BZOJ3782 上學路線

2022-04-28 20:12:15 字數 1055 閱讀 2291

bzoj

第一行,四個整數\(n,m,t,p\)。

接下來的\(t\)行,每行兩個整數,表示施工的路口的座標。

一行,乙個整數,路徑數\(\mod p\)的值。

3 4 3 1019663265

3 01 1

2 2

8
\(1 \le n,m \le 10^\)

\(0 \le t \le 200\)

\(p=1000003\)或\(p=1019663265\)

容斥,方法同bzoj4767 兩雙手,就是對於每個位置,列舉不合法的情況經過的第乙個不合法點,複雜度\(o(t^2)\)。

發現這裡的組合數比較大,所以就盧卡斯一波。

\(10^6+3\)是乙個質數,可以直接盧卡斯。

\(1019663265=3\times5\times6793\times10007\),所以還得套個\(crt\)合併。

#include#includeusing namespace std;

#define ll long long

const int n = 1e6+5;

struct node

}a[205];

int p[5]=;

int k,mod,inv[5][n],jc[5][n],jcn[5][n],f[205];

ll n,m;

int c(ll n,ll m,int op)

int cal(ll x,ll y)

return res;

}int main()

scanf("%lld%lld%d%d",&n,&m,&k,&mod);

for (int i=1;i<=k;++i) scanf("%lld%lld",&a[i].x,&a[i].y);

a[++k]=(node);sort(a+1,a+k+1);

for (int i=1;i<=k;++i)

printf("%d\n",f[k]);return 0;

}

bzoj3782上學路線

題意 從n m網格圖的左下角走到右上角 n,m 10 10 有t個座標不能經過 t 200 只能向上向右走,問有多少種不同的走法,對p取模,p只有兩種取值,1000003 質數 和1019663265 四個質數的乘積,3 5 6793 10007 考試的時候有部分分 1.n,m 1000時,o nm...

安徽上學路線

思路 跑spfa 網路流最小割。跑正反兩邊spfa,然後拎出一條邊,判斷邊權 左端點到1號節點的最短路 右端點到n號節點的最短路 離1號節點近的點為左端點,反之為右端點 是否等於1到n的最短路,如果相等左右端點連邊,權值為這條邊代價。然後跑dinic。分析 真是桑心!這道題切了乙個晚上,最後在rc ...

BZOJ 1266 上學路線route(最小割)

題意 給出乙個無向圖,每條邊有長度和代價。求出1到n的最短路。之後刪掉一些邊使得1到n的最短路變大?在此情況下使得刪掉邊的代價之和最小。思路 首先求出每個點到1和n的最短路。之後可以確定每條邊是否為關鍵邊 就是最短路上的邊 將關鍵邊建立網路流圖,求最小割即可。struct node node edg...