BZOJ 4767 兩雙手(容斥 DP)

2022-05-06 21:03:11 字數 992 閱讀 3262

[#4767.兩雙手] 題目位址

[#3782. 上學路線] 題目位址 一道很像的題。

將兩個行走方式看做兩個二維向量 \(\vec,\vec\),令其為該向量空間的基,對該空間變換後,得到每個禁止點的新座標和終點的新座標。

可以發現從乙個點 \(u(u_1,u_2)\) 走到另外乙個點 \(v(v_1,v_2)\) 的行走步數是唯一的(由於基向量線性組合時 \(a\vec + b\vec\) 係數 \(a,b\) 為正),假設走法一用了 \(x\) 次,走法二用了 \(y\) 次,那麼 \(u\) 到 \(v\)隨意行走的方案數(可以經過障礙點)就有 \(\dbinom\) 種。

對於所有的障礙點,對其總行走步數 \(z(x+y=z)\) 從小到大排序。特別的,令 \((0,0)\) 為第 \(0\) 個障礙點,終點為第 \(n+1\) 個障礙點。

設 \(f[i]\) 表示從 \((0,0)\) 到第 \(i\) 個障礙點,並且中間不經過障礙點的方案數,\(g(i,j)\) 表示從第 \(i\) 障礙點到第 \(j\) 個障礙點隨意行走的方案數。

考慮全集:(從 \((0,0)\) 到第 \(i\) 個障礙點隨意行走的方案數)為 \(g(0,i)\)(其中包含不合法方案)。

考慮不合法方案

綜上,則有:

\[f[i] = g(0,i)-\sum^_j f[j]*g(j,i-1)

\]則答案為 \(f[n+1]\)。

\(g(i,j)\) 可以用組合數預處理出來,複雜度 \(o(n^2)\)。計算 \(f[n+1]\) 複雜度 \(o(n^2)\)。時間複雜度 \(o(n^2)\)。

talk...

第一道題要用線性代數做一步轉換,第二道題要 \(lucas\) 加中國剩餘定理,暫時不會碼,哭了。

多做題!

bzoj4767兩雙手 容斥 組合

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

省選專練之容斥 BZOJ4767 兩雙手

老w是個棋藝高超的棋手,他最喜歡的棋子是馬,更具體地,他更加喜歡馬所行走的方式。老w下棋時覺得無聊,便決定加強馬所行走的方式,更具體地,他有兩雙手,其中一雙手能讓馬從 u,v 移動到 u ax,v ay 而另一雙手能讓馬從 u,v 移動到 u bx,v by 小w看見老w的下棋方式,覺得非常有趣,他...

BZOJ 4767 兩雙手(組合數學 Dp)

description 老w是個棋藝高超的棋手,他最喜歡的棋子是馬,更具體地,他更加喜歡馬所行走的方式。老w下棋時覺得無聊,便 決定加強馬所行走的方式,更具體地,他有兩雙手,其中一雙手能讓馬從 u,v 移動到 u ax,v ay 而另一雙手能讓 馬從 u,v 移動到 u bx,v by 小w看見老w...