I题:Incentive Model
题目大意
原题题面真的ex,读题就直接放弃了
solution
真就阅读理解题!
设
S
i
S_i
Si为挖出第i块矿后A所拥有的股权的期望。
S
i
=
S
i
−
1
+
w
S
i
−
1
1
+
w
⋅
(
i
−
1
)
S_i=S_{i-1}+\frac{wS_{i-1}}{1+w\cdot(i-1)}
Si=Si−1+1+w⋅(i−1)wSi−1
S
0
=
x
y
S_0=\frac{x}{y}
S0=yx
进一步推导
⟹
S
i
=
S
i
−
1
⋅
1
+
w
i
1
+
w
(
i
−
1
)
\implies S_i=S_{i-1}\cdot\frac{1+wi}{1+w(i-1)}
⟹Si=Si−1⋅1+w(i−1)1+wi
而
S
i
−
1
=
S
i
−
2
⋅
1
+
w
(
i
−
1
)
1
+
w
(
i
−
2
)
S_{i-1}=S_{i-2}\cdot\frac{1+w(i-1)}{1+w(i-2)}
Si−1=Si−2⋅1+w(i−2)1+w(i−1)
将其带入发现分子分母可以约去。
最终得到化简式
S
i
=
1
+
w
i
1
+
w
⋅
0
⋅
S
0
=
(
1
+
w
i
)
S
0
S_i=\frac{1+wi}{1+w\cdot0}\cdot S_0=(1+wi)S_0
Si=1+w⋅01+wi⋅S0=(1+wi)S0
要求块数的期望
S
n
−
S
0
w
\frac{S_n-S_0}{w}
wSn−S0
则继续将上式变式
S
n
−
S
0
w
=
n
S
0
=
n
x
y
\frac{S_n-S_0}{w}=nS_0=\frac{nx}{y}
wSn−S0=nS0=ynx
乘法逆元即可。
code
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,w,x,y;
ll mod=998244353;
ll ksm(ll a,ll p){
ll ret=1;
while(p){
if (p&1) ret=ret*a%mod;
a=a*a%mod;
p/=2;
}
return ret;
}
int main()
{
cin>>n>>w>>x>>y;
cout<<n*x%mod*ksm(y,mod-2)%mod<<"\n";
return 0;
}