数学专项测试4

A. 猜拳游戏

  考场上打了个非常伪的算法,不知道为什么能拿50。

  整道题的关键在于求出一轮中两个人的胜率之比。标程给的做法是分数规划。

  考虑二分答案,设二分的值为val,那么将A胜一轮贡献作为-val,B胜一轮贡献为1,倒着dp一遍就可以得到是否存在解。

  那么得到胜率之比之后,考虑如何得到最终答案。令$a_i$表示已经胜利i轮时的胜率,显然有$a_{i}=a_{i-1}*p+a_{i+1}*q$,p,q表示两个人分别的胜率。

  于是直接高斯消元就可以了。

  然而题解给了更高端的$O(1)$计算式,并不能理解是什么意思。

B. inequ

  gugugu

C. 生成树

  不难想到矩阵树,然后?

  不妨给每种颜色的边设个边权,为了方便,设红边的边权为1,设另外两种边的边权分别为x,y,那么在这种情况下用矩阵树定理求出来所有生成树权值之和为$\sum num_{i,j}x^{i}y^{j}$,其中num表示选两种边i,j条时的方案数。

  发现这个东西是个多元方程组,所以只要带进去若干组x,y然后进行高斯消元就可以了。

  如果用二维插值是$O(n^5)$,高斯消元$O(n^6)$然而常数很小,所以可以过。

猜你喜欢

转载自www.cnblogs.com/hzoi-cbx/p/12241539.html