首先乙個向量可以被兩個向量唯一表示 然後就轉化為有障礙點的網格圖路徑計數
這應該是個經典的容斥模型 果然是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 ...