LOJ 3119 隨機立方體

2022-04-30 09:24:14 字數 2544 閱讀 3240

解:極大值至少為1。我們嘗試把最大那個數的影響去掉。

最大那個數所在的一層(指乙個三維十字架)都是不可能成為最大值的。

考慮容斥。我們試圖求除了最大值以外至少有k個極大值的概率。

我們欽定某k個位置是極大值,且欽定順序。這樣的方案數有ni↓mi↓li↓種。

考慮每種方案的概率。從小到大考慮,對於最小的那個極大值,如果是極大值,就要大於乙個三維十字架中的所有數,這樣的概率是1 / 集合大小。

對於次小極大值,它要大於自己的三維十字架和最小值的三維十字架的並。概率還是1 / 集合大小。

於是依次考慮完每個極大值,把概率求積即可。容斥的時候記得乘組合數。

1 #include 2

3 typedef long

long

ll;4

5const

int mo = 998244353, n = 5000010;6

7int

n, m, k, l;

8int

fac[n], inv[n], invn[n];

910 inline int qpow(int a, int

b) 17

return

ans;18}

19 inline int inv(int

x) 23 inline int c(int n, int

m) 26 inline int down(int n, int

k) 29 inline int idown(int n, int

k) 32 inline int dec(int

x) 35

36 inline void

solve()

47 p = 1ll * p * c(i, k - 1) %mo;

48if((k - i) & 1

) 51

else54}

55 printf("

%d\n

", (ans + mo) %mo);

56return;57

}5859int

main()

6869

//printf(" = %lld \n", 142606337ll * fac[8] % mo);

7071

intt;

72 scanf("

%d", &t);

73while(t--)

7677

return0;

78 }

50分**,幫助理解

1 #include 2

3#pragma gcc optimize("ofast")

45 typedef long

long

ll;6

7const

int mo = 998244353, n = 5000010;8

9int

n, m, k, l;

10int

fac[n], inv[n], invn[n], val[n], ival[n], d[n];

1112 inline int qpow(int a, int

b) 19

return

ans;20}

21 inline int inv(int

x) 25 inline int c(int n, int

m) 29 inline int down(int n, int

k) 32 inline int idown(int n, int

k) 35 inline int dec(int

x) 38

39 inline void

solve()

52 ival[lm] = qpow(val[lm], mo - 2

);53

for(register int i(lm - 1); i >= k; --i)

56int t = 1ll * down(n - 1, k - 1) * down(m - 1, k - 1) % mo * down(l - 1, k - 1) %mo;

57for(register int i(k); i <= lm; ++i)

65 ans = 1ll * ans * invn[k] %mo;

66 printf("

%d\n

", ans < 0 ? ans +mo : ans);

67return;68

}6970/*711

721000 1000 1000 10

73*/

7475

intmain()

8485

//printf(" = %lld \n", 142606337ll * fac[8] % mo);

8687

intt;

88 scanf("

%d", &t);

89while(t--)

9293

return0;

94 }

ac**

這題非常卡常...

loj3119 CTS2019 隨機立方體

乙個 n m l 的立方體等概率填入 1 nml 定義乙個位置是極大的當且僅當這個位置比三位座標的至少一維與之相等的位置的值都大 詢問極大值恰好有 k 個的概率 1 le n,m,l le 5000000 1 le k le 100 1 le t le 10 include define ll lo...

CTS2019 隨機立方體

給定 n,m,l,k 表示乙個大小為 n times m times l 的立方體,將 1 sim n times m times l 這些數隨機填入這個立方體中,對於乙個格仔,若這個格仔上的數比三維座標至少有一維相同的其他格仔上的數都要大的話,我們就稱它是極大的。求極大格仔數恰好為 k 的概率,答...

資料立方體

總體介紹 首先模擬乙個資料分析場景,某企業積累了如下 所示的銷售資料 中每一行表示某個時間段內某種商品在某個地區的銷售情況。很明顯,這些資料涉及到了時間 地區 產品三個業務角度。在對這樣的資料進行分析時,不同的角色都會基於自己所感興趣的業務角度提出問題 銷售經理關心各個地區的銷售情況,希望找出銷售增...