《演算法藝術與資訊學競賽》之 堆 可憐的奶牛

2021-08-14 09:28:18 字數 537 閱讀 8231

這道題網上沒有找到,暫時之說說思路。

題目大意是:有n頭奶牛(n<=100 000)每只奶牛每天都有乙個產奶量。(每只牛的產奶量呈現出週期性變化,每只牛週期都不超過10,每天產奶量不會超過200)。每天產奶量最低的一直奶牛將會被殺了吃肉,但是如果產奶量最少的有多隻,那麼就不會有奶牛被殺。

需要求的是最後有多少只奶牛倖免於難。

首先嘗試著暴力去做,則需要模擬2520天(1,2,3…10的最小公倍數),每天有100 000隻牛,顯然會tle。

我們發現題目中唯一比較小的數就是他們的週期了,最大不超過10,則我們將奶牛分為10組,每一組的奶牛週期是相同的,對於每一組的奶牛每一天我們都開乙個堆,然後可以在乙個非常優秀的時間內得到每一組的最小值。在沒有牛被殺的情況下,這個集合可以一直不更新。但當有牛死之後,我們就要考慮刪除元素的問題了,具體的刪除的話我認為可以用時間換空間,即先維護乙個used陣列,然後將每乙個刪除的元素打上標記,再到再次掃瞄到之後,我們再對其進行刪除,這樣就不會再增添新的時間。

所以,這個題應該就可以過了,然而並沒有資料給我測。

《演算法藝術與資訊學競賽》之 堆 積水

前幾天機房斷網沒時間更新。這地道歉順便祝大家新年快樂。非常遺憾,這道題在網上沒有找到,題目較為簡單所以我直接說思路了。題目大意是給定乙個平面,每乙個點都有乙個高度,一場雨後,問那些格仔有積水,並求出總的積水量。邊界上的格仔是不會積水的 這道題非常的基礎,有些地方想清楚就非常簡單了,根據生活常識,我們...

《演算法藝術與資訊學競賽》之 並查集 團夥

題目描述 在某城市裡住著n個人,任何兩個認識的人不是朋友就是敵人,而且滿足 1 我朋友的朋友是我的朋友 2 我敵人的敵人是我的朋友 所有是朋友的人組成乙個團夥。告訴你關於這n個人的m條資訊,即某兩個人是朋友,或者某兩個人是敵人,請你編寫乙個程式,計算出這個城市最多可能有多少個團夥?輸入 第1行為n和...

割點和橋演算法 摘自《演算法藝術與資訊學競賽》

最近在做圓桌騎士的問題,在乙個無向圖中求出雙連通分量,判斷各雙連通分量中是否含有奇圈,求出不能構成奇圈的節點的個數。思路大概明確了,但是寫的時候老是出現問題,所以專題又看了一下雙連通分量的演算法,看來看去,還是劉汝佳的最經典,索性直接手打出來,方便以後再看 void dfs 節點編號k,k的父親節點...