日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ARC114E - Paper Cutting 2(组合数学,概率与期望)

發(fā)布時(shí)間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ARC114E - Paper Cutting 2(组合数学,概率与期望) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ARC114E - Paper Cutting 2

Solution

考場(chǎng)上時(shí)間不夠,沒剛出來QAQ。

做法和官解本質(zhì)相同,只是官解運(yùn)用期望的線性性直接導(dǎo)出答案,而這里是對(duì)于所有方案統(tǒng)計(jì)貢獻(xiàn)在除以方案數(shù),從期望的定義上計(jì)算答案。可能稍顯復(fù)雜。

Part one

我們要求的是合法操作序列的期望長(zhǎng)度。

問題大概可以用一個(gè)類似《PKUWC2018獵人殺》的經(jīng)典的套路轉(zhuǎn)化為:
設(shè)有一個(gè)W+H?2W+H-2W+H?2條線組成的排列p1p2...pnp_1p_2...p_np1?p2?...pn?,其中pip_ipi?的貢獻(xiàn)為111當(dāng)且僅當(dāng)不存在一個(gè)pj(j<i)p_j(j<i)pj?(j<i)可以把pip_ipi?叉掉,也就是說pip_ipi?前面沒有一個(gè)能結(jié)束游戲或者把pip_ipi?的那一半白紙去掉的數(shù),否則pip_ipi?貢獻(xiàn)為000,一個(gè)排列的貢獻(xiàn)是所有數(shù)的貢獻(xiàn)和。

不難看出每個(gè)排列都映射到一組合法操作序列(即貢獻(xiàn)為111pip_ipi?序列),每個(gè)排列的貢獻(xiàn)對(duì)應(yīng)一組合法方案的長(zhǎng)度,根據(jù)期望的定義(∑cipi\sum c_ip_ici?pi?)容易證明上面所有排列的期望貢獻(xiàn)和就是我們要求的合法方案的長(zhǎng)度和。

Part two

因此我們想要求所有W+H?2W+H-2W+H?2條線的(W+H?2)!(W+H-2)!(W+H?2)!種排列的期望貢獻(xiàn),我們可以求出所有排列的貢獻(xiàn)再除以方案數(shù)。

于是問題變成怎么求(W+H?2)!(W+H-2)!(W+H?2)!種排列的貢獻(xiàn)和。

這里我們運(yùn)用類似這場(chǎng)ARCARCARCCCC題的方法,對(duì)于每個(gè)數(shù),統(tǒng)計(jì)其對(duì)答案的貢獻(xiàn)。也就是考慮這個(gè)數(shù)xxx會(huì)在多少個(gè)排列里貢獻(xiàn)為111,即有多少個(gè)排列滿足在xxx之前不存在能叉掉xxx的數(shù)。

設(shè)行的編號(hào)為1,2,...,H?11,2,...,H-11,2,...,H?1列的編號(hào)為1,2,...,W?11,2,...,W-11,2,...,W?1,不妨令w1<w2,h1<h2w_1<w_2,h_1<h_2w1?<w2?,h1?<h2?(顯然這個(gè)順序沒有影響)。

先考慮列的貢獻(xiàn),分類討論:

  • x<w1x < w_1x<w1?,則前面不能出現(xiàn)在[x,w1)∪[w1,w2)[x,w_1)\cup[w_1,w_2)[x,w1?)[w1?,w2?)中的數(shù)。
  • w1≤x<w2w_1 \leq x < w_2w1?x<w2?,則前面不能出現(xiàn)[w1,w2)[w_1,w_2)[w1?,w2?)中的數(shù)。
  • x>w2x > w_2x>w2?,則前面不能出現(xiàn)在(w2,x]∪[w1,w2)(w_2,x]\cup[w_1,w_2)(w2?,x][w1?,w2?)中的數(shù)。

對(duì)于第一種情況,我們枚舉xxx,再枚舉它在排列中的位置,貢獻(xiàn)即為:
∑i=1w1?1∑j=1W+H?2(W+H?2?((w2?1)?i+1)j?1)\sum_{i = 1}^{w_1-1}\sum_{j = 1} ^{W + H - 2}\binom{W+H-2-((w_2-1)-i+1)}{j - 1} i=1w1??1?j=1W+H?2?(j?1W+H?2?((w2??1)?i+1)?)
用上指標(biāo)求和化簡(jiǎn)得:
∑j=1W+H?2(W+H?2?w2+w1j)?(W+H?2?w2+1j)\sum_{j = 1} ^{W + H - 2}\binom{W+H-2-w_2+w_1}{j}-\binom{W+H-2-w_2+1}{j} j=1W+H?2?(jW+H?2?w2?+w1??)?(jW+H?2?w2?+1?)
這樣就可以O(W+H)O(W+H)O(W+H)計(jì)算了。

第二種和第三種是類似的,行的貢獻(xiàn)也是類似的,這里就不再贅述了。

總時(shí)間復(fù)雜度O(W+H)O(W+H)O(W+H)

Code

實(shí)現(xiàn)上有一點(diǎn)點(diǎn)小細(xì)節(jié)。

//省略快讀和頭文件 int fac[MAXN], inv[MAXN]; inline int upd(int x, int y) { return x + y >= mods ? x + y - mods : x + y; } inline int quick_pow(int x, int y) {int ret = 1;for (; y ; y >>= 1) {if (y & 1) ret = 1ll * ret * x % mods;x = 1ll * x * x % mods;}return ret; } inline int C(int x, int y) { return (x < y || y < 0) ? 0 : 1ll * fac[x] * inv[y] % mods * inv[x - y] % mods; } void Init(int n) {fac[0] = 1;for (int i = 1; i <= n ; ++ i) fac[i] = 1ll * fac[i - 1] * i % mods;inv[n] = quick_pow(fac[n], mods - 2);for (int i = n - 1; i >= 0 ; -- i) inv[i] = 1ll * inv[i + 1] * (i + 1) % mods; } int solve(int n, int h1, int h2, int w1, int w2, int W) {int ans = 0;if (w1 > 1)for (int i = 2; i <= n - h2 + h1 - w2 + w1 ; ++ i)ans = upd(ans, 1ll * fac[n - i] * fac[i - 1] % mods * upd(C(n - h2 + h1 - w2 + w1, i), mods - C(n - h2 + h1 - w2 + 1, i)) % mods);if (w1 < w2)for (int i = 2; i <= n - h2 + h1 - w2 + w1 + 1; ++ i)ans = upd(ans, 1ll * fac[n - i] * fac[i - 1] % mods * C(n - h2 + h1 - w2 + w1, i - 1) % mods * (w2 - w1) % mods);if (w2 < W)for (int i = 2; i <= n - h2 + h1 - w2 + w1 ; ++ i)ans = upd(ans, 1ll * fac[n - i] * fac[i - 1] % mods * upd(C(n - h2 + h1 - w2 + w1, i), mods - C(n - h2 + h1 - W + w1, i)) % mods);return upd(ans, 1ll * (W - 1) * fac[n - 1] % mods); } signed main() { #ifndef ONLINE_JUDGEfreopen("a.in", "r", stdin); #endifint H, W, h1, w1, h2, w2, n; read(H), read(W), read(h1), read(w1), read(h2), read(w2), n = H + W - 2;if (w1 > w2) swap(w1, w2);if (h1 > h2) swap(h1, h2);Init(n);printf("%lld\n", 1ll * inv[n] * upd(solve(n, h1, h2, w1, w2, W), solve(n, w1, w2, h1, h2, H)) % mods);return 0; }

總結(jié)

以上是生活随笔為你收集整理的ARC114E - Paper Cutting 2(组合数学,概率与期望)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美v视频| 日本一区二区三区在线观看视频 | 青草视屏 | 狠狠爱五月婷婷 | 日本黄页网站 | 99久久精品国产亚洲 | 亚洲欧美精品在线观看 | 超碰99热| 久久午夜免费视频 | 国产黄网站 | 国产精品无码免费专区午夜 | 亚洲精品成人影视 | 国产成人日韩 | 中出在线 | 日日夜夜欧美 | 狠狠艹视频 | 国产一区二区三区免费看 | 调教亲女小嫩苞h文小说 | 日韩在线第一区 | 欧美三极片 | jizz中国少妇| 人人人妻人人澡人人爽欧美一区 | 成人试看120秒体验区 | 91高清免费| 姐姐你真棒插曲快来救救我电影 | 大桥未久av一区二区三区中文 | 成年人黄色网址 | 亚洲av永久中文无码精品综合 | 美女插插| av88av| 日韩欧美一区在线观看 | 最近2018年手机中文字幕版 | 欧美另类videos| 播放一级黄色片 | 久久这里只有精品99 | 亚洲国产日韩欧美在线观看 | 久草av在线播放 | 三级91| 午夜网站在线观看 | 成人小视频在线观看 | 超碰98在线观看 | 色欧美色 | 欧美大片高清免费观看 | 深夜国产福利 | 男同互操gay射视频在线看 | 福利国产在线 | 自拍偷拍精品视频 | 丰满人妻一区二区三区无码av | 中字av在线 | 中文字幕日韩电影 | 欧美日韩精品免费 | 在线免费观看黄色 | 奇米影视888 | 午夜精品视频在线观看 | 久久久久久久久久网 | 久久精品在线免费观看 | 在线色资源 | 舒淇裸体午夜理伦 | 久久国产剧情 | 久久久久99人妻一区二区三区 | 青青青视频免费观看 | 逼逼爱插插网站 | 亚洲欧美另类一区 | 日本成人在线免费观看 | av收藏小四郎最新地址 | 91看黄| 18欧美性xxxx极品hd | 久久一二 | 久青草视频在线观看 | 中文字幕亚洲一区 | 91国偷自产中文字幕久久 | 黄片一区二区 | 九九九九九伊人 | www.99爱| 国产丝袜一区二区 | 国产盗摄精品 | 爱爱综合 | 一本一道人人妻人人妻αv 九一在线视频 | 国产又色又爽无遮挡免费 | 毛片免费视频 | 超碰c | 国产伦精品一区二区三区视频黑人 | 色香五月 | 国产精品主播一区二区 | 日本大尺度吃奶做爰久久久绯色 | 91在线视频在线观看 | 日本精品一区在线 | 久久人人人| 日韩成人高清在线 | 欧美日韩国产第一页 | 日韩视频免费看 | 色综合久久久无码中文字幕波多 | 日本黄色生活片 | 熟妇人妻中文字幕 | 最近的中文字幕在线看视频 | 夜夜爽日日澡人人添 | 国产精品久久99 | 永久免费看黄 | av免费在线网站 |