有乙個 \(n\times m\) 的矩陣 \(a\),每個元素都是 \([0,1]\) 內的等概率隨機實數,記 \(s_i=\sum_^ma_\),求 \(\lfloor\min s_i\rfloor^k\) 的期望。
對 \(998244353\) 取模。
\(n\leq ^9,m\leq 5\times ^5,k\leq ^9\)
我們只用求 \(\lfloor s_i\rfloor\) 為 \(0\) 到 \(m-1\) 中每個值的概率就好了。
記 \(b_i=\sum_^ia_-\lfloor\sum_^ia_\rfloor,c_i=\lfloor\sum_^ia_\rfloor\),那麼 \(b_i\) 也在 \([0,1]\) 間等概率隨機。我們可以直接忽略 \(b_i\) 相同的情況。這樣就可以把 \(b\) 看成乙個排列。
可以發現,\(c_i>c_\) 當且僅當 \(b_i。
那麼只用對於每個 \(i\) 計算有多少種 \(c_j>c_\) 的個數為 \(i\) 的情況就好了。記這個東西為 \(a_\)。
怎麼算呢?
那麼 \(\frac\sum_^ma_\) 為 \(x_1+x_2+\ldots+x_n\leq m+1(0\leq x_i\leq 1)\) 的概率
記 \(h_n(x)\) 為 \(x_1+x_2+\ldots+x_n\leq x(x_i\geq 0)\) 的概率。
那麼有\[h_1(x)=x\\
h_i(x)=\int_0^xh_(x-z)~dz=\int_0^xh_(z)~dz=\frac
\]列舉有多少個 \(x_i>1\) 進行容斥,那麼就有:
\[\begin
\frac\sum_^ma_&=\sum_^^i\binomh_n(m+1-i)\\
\fraca_&=\sum_^^i\binomh_n(m+1-i)-\sum_^^i\binomh_n(m-i)\\
&=\sum_^^i\binomh_n(m+1-i)+\sum_^^i\binomh_n(m+1-i)\\
&=\sum_^^i\binomh_n(m+1-i)\\
&=\frac\sum_^^i\binom^n\\
a_&=\sum_^^i\binom^n
\end
\]這樣就可以在 \(o(m\log m)\) 內計算出 \(a_\ldots a_\) 了。
時間複雜度:\(o(m\log m)\)
#include#include#include#include#include#include#include#include#include//using namespace std;
using std::min;
using std::max;
using std::swap;
using std::sort;
using std::reverse;
using std::random_shuffle;
using std::lower_bound;
using std::upper_bound;
using std::unique;
using std::vector;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef std::pairpii;
typedef std::pairpll;
void open(const char *s)
void open2(const char *s)
int rd()dowhile((c=getchar())>='0'&&c<='9');return b?-s:s;}
void put(int x)static int c[20];int t=0;while(x)while(t)putchar(c[t--]+'0');}
int upmin(int &a,int b)return 0;}
const int n=1200000;
const ll p=998244353;
ll fp(ll a,ll b)
namespace ntt
for(int i=2;i<=n;i<<=1)
for(int j=0;j=0;i--)
f[i]=(f[i]+f[i+1])%p;
for(int i=0;if[i]=fp(f[i],n)%p;
for(int i=0;if[i]=(f[i]-f[i+1])%p;
ll ans=0;
for(int i=0;ians=(ans+fp(i,k)*f[i])%p;
ans=(ans%p+p)%p;
printf("%lld\n",ans);
return 0;
}
集訓隊作業2018 小Z的禮物
小水題。題意就是不斷隨機放乙個 1 times 2 骨牌,然後取走裡面的東西。求期望多少次取走所有的東西。然後有一維很小。首先顯然 minmax 容斥,將最後取走轉化為欽定一些物品,求第乙個取走的期望。然後顯然第乙個取走的期望只和剩下能蓋到物品的骨牌數有關。乙個骨牌能蓋到物品只和相鄰的兩個格仔是否欽...
集訓隊作業2018 喂鴿子
設 f n 表示有 n 只鴿子,每次等概率選乙隻喂,期望餵飽第一只鴿子的時間,f 表示有 n 只鴿子,已經喂了 m 次,此時這 n 只鴿子中沒有鴿子被餵飽的概率。ans sum n 1 f i f n sum sum f frac sum f sum frac 注意到有 dfrac n sum x ...
集訓隊作業2018 GAME(並查集)
題意 題解 把這個dp式子給列出來 f i si max j f i s i max j fi si jmax 把這個字尾max max max記為m mm的話,每次就是m max m max m m max,考慮對於初始的每個m mm都維護一下,發現是條折線,維護一下這個折線,每次可以把小的一半合...