題目傳送門
題目大意:給出 n
nn 個物品,第 i
ii 個物品強度為 a
ia_i
ai,每次隨機選擇相鄰兩個進行決鬥,強度大的活,小的就沒了。問每個物品期望活多少輪。
很容易想到的是,每個物品的生死,取決於什麼時候遇到它左邊第乙個比他大的或右邊第乙個比他大的物品。
考慮第 x
xx 個物品,設左邊第乙個比他大的位置在 pre
prepr
e,右邊第乙個比他大的在 nex
tnext
next
。設 s[i
]s[i]
s[i]
表示物品 x
xx至少活了 i
ii 輪的概率,他等於 1−1-
1−物品x在i-1輪內去世的概率
。
物品 x
xx 要在 i
ii 輪內去世,要麼就是碰到 pre
prepr
e,要麼就是碰到 nex
tnext
next
了,做一下容斥概率就是:
c n−
1−(x
−pre
)i−(
x−pr
e)+c
n−1−
(nex
t−x)
i−(n
ext−
x)−c
n−1−
(nex
t−pr
e)i−
(nex
t−pr
e)cn
−1
i\frac ^+c_^-c_^} ^i}
cn−1i
cn−1
−(x−
pre)
i−(x
−pre
)+c
n−1−
(nex
t−x)
i−(n
ext−
x)−
cn−1
−(ne
xt−p
re)i
−(ne
xt−p
re)
c n−
1−(x
−pre
)i−(
x−pr
e)
c_^cn
−1−(
x−pr
e)i−
(x−p
re)
c in
ext−
pr
ec_i^
cinext
−pre
就是前面兩種情況的重疊部分,也就是 pre
prepr
e 到 nex
tnext
next
這一段全部去世了。
然後 s[i
]s[i]
s[i]
累加起來就是 x
xx 總的存活輪數期望了,時間複雜度 o(n
2)
o(n^2)
o(n2)。
我這題**有點奇奇怪怪的,雖然能 acac
ac……具體你們看**:
#include
#define maxn 110
//不知道為什麼,陣列一定要開大一點,只開到60的話會wa後面幾個點,也不知道**陣列越界了……
#define mod 998244353
int n,a[maxn]
,ans[maxn]
;int fac[maxn]
,inv_fac[maxn]
;int
ksm(
int x,
int y)
return re;
}#define inv(x) ksm(x,mod-2)
void
work()
intc
(int x,
int y)
int pre,next;
intmain()
for(
int j=i+
1;j<=n;j++)if
(a[j]
>a[i])if
(pre==-1
&&next==-1
)ans[i]
=n-1
;else
if(pre==-1
&&next!=-1
)for
(int j=
1;j1;j++
) ans[i]
=(ans[i]+(
1-1ll*
c(n-1-
(next-i)
,j-(next-i))*
inv(
c(n-
1,j)
)%mod+mod)
%mod)
%mod;
else
if(pre!=-1
&&next==-1
)for
(int j=
1;j1;j++
) ans[i]
=(ans[i]+(
1-1ll*
c(n-1-
(i-pre)
,j-(i-pre))*
inv(
c(n-
1,j)
)%mod+mod)
%mod)
%mod;
else
for(
int j=
1;j2;j++
) ans[i]
=(ans[i]+(
1ll-
1ll*((
c(n-1-
(i-pre)
,j-(i-pre))+
c(n-1-
(next-i)
,j-(next-i)))
%mod-
c(n-1-
(next-pre)
,j-(next-pre)
)+mod)
%mod*
inv(
c(n-
1,j)
)%mod+mod)
%mod)
%mod;
printf
("%d "
,ans[i]);
}}
洛谷 P3601 簽到題
題目描述 我們定義乙個函式 qiandao x 為小於等於x的數中與x不互質的數的個數。這題作為簽到題,給出l和r,要求求 i lrqi anda o i mo d666623333 sum r qiandao i mod 666623333 i lr qian dao i mo d666 6233...
洛谷 P1728 「程式設計題」
題目背景 高手在一年級 找不到可以怎麼樣來鄙視小盆友以獲得女神的歡心,於是他決定玩電競來藐視那些連開機都不知道要按 的小盆友。他玩的遊戲叫 minecraft 其中乙個核心的內容是給技能加點 minecraft要加點?他找到你,並答應如果自己追到了女神,他就請你去他家吃飯,油炸蘋果 香辣梨子 水煮活...
洛谷P3601 簽到題
我們定義乙個函式 qiandao x 為小於等於x的數中與x不互質的數的個數。這題作為簽到題,給出l和r,要求求 sum r qiandao i mod 666623333 先線性篩出 1 sim 10 6 的質數,然後計算他們對 l sim r 的數的貢獻即可。注意噹噹 l sim r 的數最後可...