「Solution」Gauss消元题目合集
All in one.
First Knight
设$dp[i][j]$为从$(i, j)$为起点走到终点$(n, m)$的代价。
$dp[i][j] = dp[i + 1][j] \times p[i + 1][j][1] + dp[i][j + 1] \times p[i][j + 1][2] \\ + dp[i - 1][j] \times p[i - 1][j][3] \\ + dp[i][j - 1] \times p[i][j - 1][4] + 1$移项后为$-dp[i][j] \\ + dp[i + 1][j] \times p[i + 1][j][1]\\ + dp[i][j + 1] \times p[i][j + 1][2] \\+ dp[i - 1][j] \times p[i - 1][j][3] \\+ dp[i][j - 1] \times p[i][j - 1][4] = -1$
可以高斯消元。
然后用带状优化到$N \times N \times 2 \times m$
Time travel
设$dp[i]$表示从$i$为起点到终点走过路程的期望长度。
$dp[i]=1+\sum_{j=1}^{m} dp[vis[i][j]]\times P[|i-j|]$ $\rightarrow -dp[i] +\sum_{j=1}^{m} dp[vis[i][j]]\times P[|i-j|] = -1$ $dp[t] = 0$对于$dp[s]$只能从规定方向转移。
然后可以带状优化。
比较难写,弃了
Museum
$dp[i][j]$表示**当前**`Petya`在$i$,`Vasya `在$j$的概率。 $$ dp[i][j] = dp[i][j] \times P[i] \times P[j] \\ + \sum_{(x,i) \in G}\sum_{(y,j) \in G} \frac{dp[x][y] \times (1 - P[x]) \times (1 - P[y])}{deg[x] \times deg[y]} + \\ \sum_{(x, i)\in G}\frac{dp[x][j]\times(1-p[x])\times p[j]}{deg[x]} + \sum_{(y, i)\in G}\frac{dp[i][y]\times(1-p[y])\times p[i]}{deg[y]} $$常数项为$0$
$$
dp[i][j] \times (P[i] \times P[j] - 1) \\
+\sum_{(x,i) \in G}\sum_{(y,j) \in G} \frac{dp[x][y] \times (1 - P[x]) \times (1 - P[y])}{deg[x] \times deg[y]} + \\
\sum_{(x, i)\in G}\frac{dp[x][j]\times(1-p[x])\times p[j]}{deg[x]} + \sum_{(y, i)\in G}\frac{dp[i][y]\times(1-p[y])\times p[i]}{deg[y]}
= 0
$$
初始值$dp[s_1][s_2] = 1$
不论经过这两个点多少次,它的概率都是1,因为这个是必然事件。
暴力解方程是$\Theta(N^3) = \Theta(113379904)$
时限$2s$可过。
Rating
显然可以把数据范围缩小到$[1,20]$。
$(0, 0) \rightarrow (0,1) \rightarrow (1,1) \rightarrow (1,2) \rightarrow (2,2)$考虑当前的一个状态$(x,y) | y\leq x$
$dp[x][y] = dp[x][y + 2] \times (1-p) + dp[x][y - 1] \times p + 1$
$\rightarrow dp[x][y]-dp[x][y+2]\times (1 - p) - dp[x][y - 1] \times p = 1$
游走
如果把边权看做已知条件。
设$dp[u]$表示从$u$为初始节点,走到$n$结束的期望值。
$dp[u] = val(u, v) + \frac{1}{deg[u]} \sum_{(v,u)\in G} dp[v]$ $-dp[u] + val(u, v) + \frac{1}{deg[u]} \sum_{(v,u)\in G} dp[v] = 0$瓶颈在于给每条边赋权。
如果把边权挪到点上?
如果考虑点的话断然是行不通的。
那么设$dp[(u,v)]$表示从$(u,v)$这条边出发,走到$n$结束的期望值。
$dp[(u,v)] = val(u,v) + \frac{1}{deg[u]}\sum_{(x, u)\in G}dp[x] + \frac{1}{deg[v]}\sum_{(y, v) \in G}dp[y]$不行。
根据上面式子,最后的贡献与每边的边权和经过的概率有关。
贪心一下,经过次数越多的边的边权应该赋得越大。
那么要找出每条边贡献的次数。
即是经过的次数。
在这道题中,概率就等同于期望。
求出每条边的概率即可。
复杂度不对?
然后找到经过每个点的概率就好了。
边$(u, v)$的概率就是$P[u]\times \frac{1}{deg[u]} + P[v] \times \frac{1}{deg[v]}$
然后排序,从大到小依次赋值。
$-dp[u] + \frac{1}{deg[u]} \sum_{(v,u)\in G} dp[v] = 0$边界注意$dp[1] = dp[n] = 1$
高斯消元可以解决。
The End「Ô mon âme, n'aspire pas à la vie immortelle, mais épuise le champ du possible.」