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...