BZOJ5322 JXOI2018 排序問題

2021-09-11 03:30:27 字數 1524 閱讀 2987

傳送門

不難看出期望就是 (n+

m)!∏

v=1m

ax(c

ntv!

)\frac^(cnt_v!)}

∏v=1ma

x​(c

ntv​

!)(n

+m)!

​,cntv

cnt_v

cntv

​ 表示 v

vv 這個數出現的次數。

貪心就是直接把 m

mm 個數字每次選擇乙個 cnt

cntcn

t 最小的加入,使得最後 [l,

r]

[l,r]

[l,r

] 內每個數字出現的次數盡量平均。

直接按照數字出現的次數排序,從大到小列舉平均的次數是多少即可。

# include

using

namespace std;

typedef

long

long ll;

const

intmaxn

(2e5+5

);const

intmod

(998244353);

inline

void

inc(

int&x,

const

int y)

inline

intpow

(ll x,

int y)

int n, m, l, r, a[maxn]

, val[maxn]

, cnt[maxn]

, tot, ans;

int fac[

(int

)1e7

+ maxn]

;inline

void

solve()

n = tot, ans =

1, tot =0;

for(i =

1; i <= n;

++i)

if(val[i]

< l || val[i]

> r) ans =

(ll)ans * fac[cnt[i]

]% mod;

else cnt[

++tot]

= cnt[i]

, m +

= cnt[i]

;sort

(cnt +

1, cnt + tot +1)

;for

(i = tot;

~i;--i)

m -= cnt[i]

,--len, ans =

(ll)ans * fac[cnt[i]

]% mod;

} ans =

(ll)

pow(ans, mod -2)

* facn % mod;

printf

("%d\n"

, ans);}

intmain()

BZOJ3195 Jxoi2012 奇怪的道路

time limit 10 sec memory limit 128 mb 小宇從歷史書上了解到乙個古老的文明。這個文明在各個方面高度發達,交通方面也不例外。考古學家已經知道,這個文明在全盛時期有n座城市,編號為1.n。m條道路連線在這些城市之間,每條道路將兩個城市連線起來,使得兩地的居民可以方便地...

bzoj3195 Jxoi2012 奇怪的道路

time limit 10 sec memory limit 128 mb submit 544 solved 354 submit status discuss 小宇從歷史書上了解到乙個古老的文明。這個文明在各個方面高度發達,交通方面也不例外。考古學家已經知道,這個文明在全盛時期有n座城市,編號為...

bzoj3195 Jxoi2012 奇怪的道路

題目鏈結 一張 n 個點 m 條邊的無向圖,每個點度數為偶數,乙個點只能向標號與它的差不超過 k 的點連邊,問構圖方案。三維狀態搞了半天的我眼淚掉下來t t f i j s l 表示,前 i 個點,已經連了 m 條邊,第 i k 個點到第 i 個點的狀態為 s 當前討論 i 與 i k l 的連邊情...