cojs 西瓜 解題報告

2022-05-31 06:42:12 字數 703 閱讀 5037

首先我們要知道pick公式

設二維平面內任意多邊形面積為s

設多邊形內部整點數為a

設多邊形邊界的整點數為b

則滿足s=a+b/2-1

變形得a=s-b/2+1

由期望的線性性質我們把問題轉化為

1、求凸包面積的期望

2、求凸包邊界整點數的期望

首先我們考慮如何算面積,對於任意凸多邊形,我們可以以原點為劃分點

對於每條邊算叉積,叉積的和就是面積,很容易發現每條邊的貢獻是可以拆分的

顯然我們可以列舉每條可能的邊,對於這條邊算他存在凸包的概率並乘以相應的貢獻就可以辣

一共有n^2條邊,所以這部分時間複雜度為o(n^2)

之後我們考慮如何算邊界整點數的期望,更容易發現每條的邊的貢獻是可以拆分的

跟上面乙個做法就可以了

至於每條邊存在凸包的概率嘛,我就不再細說了

很容易推倒的公式,用心推一推就出來了

假設你已經知道概率的公式了

em 好啦,我們現在來說一說o(n)的做法

很容易發現隨著我們列舉的邊的兩個端點中間的點數的擴大,概率會越來越小

當概率不會對答案產生精度誤差時,我們就可以不用計算辣

這就是o(n)的演算法了

最後的最後一定要注意不能選退化的凸包,所以算概率的時候要考慮進去

ps:由於本人太辣雞,並不能做出很大的嚴格凸包,所以這個題目只是簡單的idea題嘍

吃西瓜 解題報告

說明 此題中出現的所有數全為整數 背景 subray有一天得到一塊西瓜,是長方體形的.題目描述 subray發現這塊西瓜長m厘公尺,寬n厘公尺,高h厘公尺.他發現如果把這塊西瓜平均地分成m n h塊1立方厘公尺的小正方體,那麼每一小塊都會有乙個營養值 可能為負,因為西瓜是有可能壞掉的,但是絕對值不超...

cojs 自己出的題目 解題報告

省選成功成為河北b隊隊長qaq 真是憂桑 所以在cojs上出了一套鬼畜的關於樹的套題 黑白樹 我們先不考慮r操作 設x是u的祖先,那麼fa x 的貢獻顯然是 fa x sz fa x sz x 之後我們對於這個求和就是答案辣 然而這一臉不可做,我們化簡一下,考慮每個sz x 的貢獻 sz x 的貢獻...

cojs 簡單的01串 題解報告

題意顯然是求n位二進位制串中不大於其逆序串,取反串,逆序取反串的所有串按字典序排序後的第k個 由於n很小,k很大所以我們可以考慮逐位確定 問題轉化為了求方案數,這顯然是可以用數字dp做的 設f len rev inv 表示當前字首長度為len,rev表示是否等於其逆序串,inv表示是否等於其逆序取反...