HNOI 2013 旅行 (數學)

2022-08-05 04:36:11 字數 818 閱讀 3924

感覺此題難啊,數學還是太渣了,看了半天的題解才算明白了點兒。

給乙個長度為n且僅由1和-1組成的序列ai, i = 1, 2, ..., n,每個位置都有另乙個值vi,要求用某種方案將序列劃分為m(0 < m < n)個非空連續子串行,使得所有子串行中和的最大絕對值最小,並且在所有滿足上述條件的方案中劃分位置的v[i]序列字典序最小。

記\(s_i = \sum_^\)

記題目中說的和的最大絕對值的最小值為

有如下幾個結論若並且

,則若

並且,則若,則

證明:對於第三條結論,如果

,我們可以肯定的是

。原因是如果每一段的和的絕對值都小於

,整個序列的和不可能為

。下面我們證明可以構造出

的方案。

這題思維難度很大,就算上面的結論猜到了,敢用了,想不出下面計算字典序最小的方案的演算法也是沒有用的。

對於並且

的情況,由於有且僅有字首和為0的位置可選,我們僅需要維護乙個單調佇列,對第i個劃分位置入隊直到後面的字首和為0的位置不足時為止,然後取出隊中最小的即可。

對於其他情形,我們當前選擇的位置受上乙個位置限制。假設第

個位置為

,給定另乙個位置

,可以作為第

個位置當且僅當

這個就有些難。我們對每個s值維護乙個單調佇列,得到第

個位置後,我們訪問所有s值在

中的單調佇列。

看起來是不是很暴力?似乎又要mle又要tle的樣子?讓我們仔細分析空間和時間複雜度,由於我們所有位置都最多入隊一次,故空間複雜度為

。因為,總共選m次,故總的時間複雜度為

HNOI2013 比賽 搜尋

搜尋。lg傳送門 直接暴力有60,考場上寫的60,結果掛成40。考慮在暴力的同時加個記憶化,把剩下的球隊數和每支球隊的得分情況hash一下,每次搜到還剩 t 個隊的時候就在雜湊表裡找一下,有就拿來算答案,沒有就把這次的結果存進雜湊表。複雜度 o 能過 include include include ...

HNOI2013 遊走題解

題目鏈結 給你乙個 n 個點 m 條邊的無向連通圖從 1 號點出發,每次隨機選擇當前頂點的某條邊走到下乙個點,並獲得這條邊的分數,分數為這條邊的編號,一旦到了 n 號點就結束遊走,總分為獲得分數的總和。安排每條邊的編號,使總分的期望值最小,並輸出最小的期望值 看完題目能夠發現,我們只要求出經過每一條...

習題 HNOI2013 消毒(匈牙利)

傳送門我們先考慮低維的情況 這應該有手就行 可惜我沒有手 我們注意到,我們肯定都是一次性將一次一行或者一列直接覆蓋完全,這一定是最優的方法 之後我們觀察乙個矩陣,其只需要 min x,y 條線段就可以覆蓋完全,這剛好就是題目中所提到的代價計算方式 然後就可以轉換成為最小點覆蓋的問題 三維的情況也有點...