[agc019f]Yes or No

  • 题目链接

    agc019f

  • 题目大意

    有一长为 \(N+M\)\(01\) 序列,其中恰有 \(N\)\(1\)\(M\)\(0\),顺序未知。

    进行 \(N+M\) 次操作,每次回答 \(0\)\(1\),会给出是否匹配。

    求在最优策略下,匹配个数的期望。答案对 \(998244353\) 取模。

    \(N,M\le 5\times 10^5\)

    部分分:\(N=M\space and\space N,M\le 10^5\)

  • 题解

    首先题目可以转化为在一个 \(N\times M\) 的矩形上行走,对于一个点 \((i,j)\),其权值为 \(\frac{max(i,j)}{i+j}\) 。求的就是路径的期望权值,也就是所有路径的权值和。

    自然想到对 \(i+j=k\) 的统一算,但仍然不是很好算。

    我们考虑 \(k\to k+1\) 的过程,发现只有经过 \(y=x\) 以下的水平线和其以上的竖直线才会令答案加一。那么我们对水平和竖直分开算。

    以水平线为例,若我们将水平线缩点,发现这是计数经过点 \((i,j)\space (i+j=k\space and\space i\ge j)\) 的路径。

    同样考虑 \(k\to k+1\) 的过程,发现可以直接通过组合数加减得到。

    那么我们就可以 \(O(1)\) 统计出 \(i+j=k\) 的点 \((i,j)\) 的权值和了。

    总复杂度 \(O(N+M)\)

posted @ 2021-03-16 22:20  leukocyte  阅读(56)  评论(0)    收藏  举报