Description
有n+m个问题,其中n个的答案是YES,m个的答案是NO,你现在从前往后回答问题,按照最优策略猜答案,回答完当前问题后你会知道这个问题的答案,问期望答对的题目的数量
n,m<=500000
部分分:n=m
Analysis
bruteforce
设还剩i个YES,j个NO
显然最优策略为猜剩余多的那个,即猜对概率为max(i,j)/(i+j),这样n^2dp显而易见
然而貌似有一种猎奇思路
n=m
部分分启示思考
放入格路径中考虑,(n,m)(n,m)表示n,m的答案,注意到一个性质:如果从(i,i)(i,i)走到(j,j)(i≥j)(j,j)(i≥j),且中途不经过对角线,那么每次都会猜一样的答案,过程中恰好猜对i−ji−j个。
那么就是计数题套路,设f[i]f[i]表示(i,i)(i,i)的答案,枚举第一个碰到的对角线上的点(j,j)(j,j),有
f[i]=∑j<i(f[i−j]+j)∗Catalan(j)f[i]=∑j<i(f[i−j]+j)∗Catalan(j)
可以分治fft计算
任意(n,m)
枚举第一个碰到的(i,i)(i,i)再根据f[i]f[i]计算答案
计数学傻了
我们有上面那个性质,任意一条(n,m)到(0,0)的路径一定可以拆成若干不经过对角线的段,每一段都是独立的,所以答案至少为n,只需要对于对角线上的点单独计算即可(猜对概率为0.5)