容斥原理 DP BZOJ 4767 兩雙手

2021-07-28 01:10:23 字數 1190 閱讀 2904

首先乙個向量可以被兩個向量唯一表示 然後就轉化為有障礙點的網格圖路徑計數

這應該是個經典的容斥模型 果然是noip模擬賽啊

如果不考慮障礙 那麼答案是pa

th(s

,t)=

cmn+

m 然後我們考慮容斥 列舉路徑上碰到的第乙個障礙點v

ans=

cmn+

m−fv

∗pat

h(v,

t)其中f

v 表示從起點

s 出發不經過其他障礙點到達

v的路徑數 pa

th(v

,t) 表示從

v 到

t不考慮障礙的路徑數 這顯然也是個組合數 fv

怎麼求 從頭開始dp就好了

#include

#include

#include

#include

#define read(x) scanf("%d",&(x))

using namespace std;

typedef pair abcd;

typedef long long ll;

const int p=1e9+7;

const int maxn=1000005;

ll fac[maxn],inv[maxn];

inline void pre(int n=500000)

inline ll c(int n,int

m)int ex,ey,ax,ay,bx,by;

inline bool calc(int

x,int

y,int &a,int &b)

const int n=505;

#define x first

#define y second

int n,m;

int tot; abcd pt[n];

int f[n];

inline ll path(int j,int i)

int main()

pt[++tot]=abcd(n,m);

sort(pt+1,pt+tot+1);

f[0]=1;

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

printf("%d\n",f[tot]);

return

0;}

BZOJ 4767 兩雙手(容斥 DP)

4767.兩雙手 題目位址 3782.上學路線 題目位址 一道很像的題。將兩個行走方式看做兩個二維向量 vec,vec 令其為該向量空間的基,對該空間變換後,得到每個禁止點的新座標和終點的新座標。可以發現從乙個點 u u 1,u 2 走到另外乙個點 v v 1,v 2 的行走步數是唯一的 由於基向量...

bzoj4767兩雙手 容斥 組合

4767 兩雙手time limit 10 sec memory limit 256 mb submit 684 solved 208 submit status discuss description 老w是個棋藝高超的棋手,他最喜歡的棋子是馬,更具體地,他更加喜歡馬所行走的方式。老w下棋時覺得無...

容斥原理 數論

兩個集合的容斥關係公式 a b a b a b a b 重合的部分 三個集合的容斥關係公式 a b c a b c a b b c c a a b c 最後可以推廣到n個集合,集合裡的元素為奇數則加,偶數減 hdu 4135 很簡單,直接求出所有的質因子,然後容斥解決 author crystal ...