思維題 閾值 期望 10 3奧義商店

2022-05-20 03:36:50 字數 2070 閱讀 9402

真是非常可惜……一是閾值不會用;二是期望不熟悉。考場的idea已經直逼標算了。

樂滋滋經常參加各種拍賣會,前不久,他收到了來自滋滋國最大的商店——奧義商店的拍賣會邀請函。

為了讓拍賣會看起來更加奧妙重重,奧義商店設定了乙個極為複雜的拍賣規則:一共 $n$ 個物品排成一排,第 $i$ 個物品**是 $v_i$​ 。對於一次拍賣,商店會指定 $t$ 種顏色,並對每種顏色指定乙個數目 $c_j$​ 滿足 $\sum_^c_j=n-1$ ,另外還會指定乙個下標 $k$ 和乙個公差 $d$ 。

買家需要給第 $k$ 個物品染上一種顏色(在 $t$ 種顏色中選擇一種)

。接著,把剩下的 $n-1$ 個物品隨機染成 $t$ 種顏色之一,並保證這 $n-1$ 個物品中第 $j$ 種顏色的恰好有 $c_j$​個。

買家需要購買的物品按這樣的方式計算:找到 $k$ 所在的最長的以 $d$ 為公差的等差數列 $a_x=kx+d(x\in [l,r],l\le 0 \le r)$ 滿足其中所有物品都與第 $k$ 個物品同色。買家需要買下這個等差數列中的所有物品,顯然花費就是 $\sum_^v_$​ 。

樂滋滋最近出現了點「經濟危機」,希望你能幫他給第 $k$ 個物品選擇合適的顏色,以此來最小化他花費的期望,你只需要輸出這個期望即可。

當然商品的**是可能出現變動的,你需要維護這些變化。

$1 \leq n,m \leq 10^5$

我考試時候在想什麼,為什麼現在看這題覺得好簡單啊……

不知道過幾天還會不會做

這裡是一些零碎的做完題的想法:

既然要求期望代價最小,那麼每一次第$k$個物品應該染成$min$ $c_j$。然後把期望拆開,就是每乙個位置被統計到的概率乘以它的權值。這個概率不是很難算,就是從前乙個位置轉移過來的概率。

以上就是乙個正確但是非常慢的想法。

演算法的複雜度是$o(mn/d)$的,當$d$比較小時,複雜度就接近$o(nm)$。

可能會說:那麼把d閾值一下就好了嘛,d小的時候用$s[d][j]$表示模$d$為j的vi總和。然而只閾值d只能在$t=1$時有效。若$t!=1$還是需要列舉計算期望。然後非常玄學的精度閾值就來了:

但是要注意!最好不要形如 if (sta*v[k-i*d] < 1e-13) break; 的精度閾值。因為儘管看上去增量已經很小了,但實際上是不能這樣「意會」的。

所以以上就是這題的兩個玄學閾值。

1 #include2 #include3

const

int maxn = 100035;4

5double ans,sta,s[103][103];6

intn,m,t,k,d,mn;

7int

v[maxn],c[maxn];89

intread()

1021

int min(int a, int b)

22int

main()

2333

while (m--)

34else

50 }else

56 sta = 1.0;57

for (int i=1; i<=100&&k-i*d>=1; i++)

5862

}63 printf("

%.6lf\n

",ans);64}

65}66return0;

67 }

鬼知道我考試時候在寫什麼……

#includeconst

int maxn = 100035

;double

ans,sta;

intn,m,t,k,d,mn;

intv[maxn],c[maxn];

intread()

intmain()

else

printf(

"%.6lf\n

",ans);}}

return0;

}

鬼畜**

end

小學奧數思維訓練題(二)

同學和老師共16人去郊遊,有男同學 女同學 男老師 女老師。出發前,清點了一下人數,發現 學生比老師人數多 男老師比男同學人數多 男同學比女同學多 女同學比女老師多 問 女同學有多少人?分析 從題中可以得到以下資訊 男同學 女同學 男老師 女老師 老師人數 16 2 8 男老師 男同學 女同學 女老...

小學奧數思維訓練題(三)

甲 乙兩人分別從相距 300 公尺的 a b 兩地同時出發,相向而行,已知甲的速度為乙的 2 倍。那麼,甲 乙第一次相遇的地點距離 ab 中點 公尺。分析 相遇問題中比較基礎的典型問題。兩人同時出發,意味著 到相遇的時候,兩人行進的時間是相同的 而甲的速度是乙的 2 倍,意味著 甲行進的距離是乙的 ...

小學奧數思維訓練題(四)

有乙個雇主約定每年給工人 60 元錢和一件衣服,工人做到 7 個月的時候想要離開,雇主給了他 25 元錢和一件衣服。這件衣服值多少錢?分析 方法一 分數思路 一年 12 個月,要給 60 元錢和 一件衣服,就是說 每個月要給 錢 60 12 5 元 衣服 1 12 1 12 件 就是把衣服裁成 12...