Wannafly挑戰賽16 C 小球碰撞

2022-08-09 04:54:08 字數 957 閱讀 2962

標籤 : 數學 逆元

乙個彈球(可視為質點)被水平丟擲,落地時發生完全彈性碰撞,設彈球第一次落地位置為x,則第i次落地位置為(2i-1)x.若彈球第一次落地的位置在區間[l,r]均勻隨機分布,求彈球落在區間[l,r]內的總次數的數學期望值 

可以證明答案為有理數,若答案表示為最簡分數為a/b,則存在c使得bc mod 998244353 = 1 ,只需輸出ac mod 998244353

第一行,乙個整數n

接下來n行,每行兩個空格分隔的整數l,r

(1<=n<=50000,1<=l輸出n行,每行乙個整數,表示a*c mod 998244353

3

3 43 5

1 5

1

1166374060

首先考慮會落在區間內恰好k次的初始下落位置的集合。顯然,當滿足\((2k-1)x \leq r\)且\((2k+1)x > r\)時

化簡1中式子可以得到\(x \in( \frac,\frac]\),所以應有\(x \in( max(l,\frac),max(l,\frac)]\)

所以下落k次的概率為\(f(k)= \frac) - max(l,\frac)}\)

所求期望為 $$e(k)=\sum_^kf(k)$$

#include #include #include using namespace std;

typedef long long ll;

const ll mod=998244353;

const int maxn=1e7+50;

ll inv[maxn],sum[maxn];

void init()

int main()

}

wannafly挑戰賽A 小H和迷宮

題目描述 小h陷入了乙個迷宮中,迷宮裡有乙個可怕的怪獸,血量有n點,小h有三瓶魔法藥水,分別可以使怪獸損失a b c 的血量 之後怪獸的血量會向下取整 小h想合理地運用這三瓶藥水,使怪獸失去盡可能多的血量 注意 每瓶藥水只能用一次 輸入描述 一行,四個整數 n,a,b,c 輸出描述 一行,乙個整數w...

Wannafly挑戰賽16 D 打怪(DP)

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 有a種 b種屬性,和c種怪物。對於第k種怪物,給出 i和屬性j的搭配在乙個單位時間內對其造成的傷害h k,i,j。已知一開始使用 i,需要時間x i,使用屬性i,需...

Wannafly挑戰賽A 概率DP

給你乙個長 n 的序列,m 次查詢 每次查詢給乙個 x,然後 從序列的最左端 1 開始,每次隨機的選擇乙個右端點 r,如果兩個端點間的區間和不超過 x 就進行一次分割,然後把左端點變成 r 1,否則一直隨機下去。問這樣分割出來的期望段數 第一行兩個數 n,m 之後一行 n 個數表示這個序列 之後m行...