1 条题解
-
0
自动搬运
来自洛谷,原作者为

b2019dy
**搬运于
2025-08-24 22:03:29,当前版本为作者最后更新于2018-07-19 09:15:42,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
本题是个数学题,情况总数为重排列数,即
由题意可得,无论哪种情况,总会用完所有鲤鱼,则红鲤鱼的罚时必定会全部累加,最后也必定为1次AC,则罚时总值为
我们来考虑前面的绿鲤鱼,我们可以知道,绿鲤鱼记录的时间之与它所处的位置有关,证明可得,绿鲤鱼在每一个位置上的次数是相同的。次数为次。
则我们可以利用高斯公式求出等差数列,再加上之前算出的罚时,即可求出最终罚时总值。$5\dfrac{b}{a+b}\dfrac{(a+b)!}{a!b!}\dfrac{(1+a+b)(a+b)}{2}+5\dfrac{(a+b)!}{a!b!}(2a+b+1)$
除以情况数,并约分得期望值为
可得分母只有2这一种情况,预处理2的取模情况即可。#include<iostream> #include<iomanip> #include<cstdio> #include<cstring> using namespace std; long long ans,a,b; const long long p=499122427; int main() { scanf("%lld%lld",&a,&b); ans=(5*((4*(a%998244853))%998244853+(2*(b%998244853))%998244853+2+(b%998244853)*(1+(a%998244853)+(b%998244853))))%998244853; if(ans%2==0) { printf("%lld",ans/2); } else printf("%lld",(ans*p)%998244853); }
- 1
信息
- ID
- 3739
- 时间
- 400ms
- 内存
- 32MiB
- 难度
- 5
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者