接龍啊…
小測資照著題目做就可以過,但大測資不行,必須優化,可以優化成 O(n)
。
接龍啊…
小測資照著題目做就可以過,但大測資不行,必須優化,可以優化成 O(n)
。
若總數字數是偶數,組出來的兩個數字的長度必相等,若是奇數,長度必差一
對所有數字排列,求 data[:N//2]
, data[N//2:]
的差及可 AC
原始想法:
對數列排列,每次排列計算該排列的 final sum,看可不可以等於 S。
將每一個位置當作起點,做一次深度限制為 5 的 dfs,即可跑出所有可能,之後用 set 排除重覆。
這題是 最少涵蓋區間 。 Greedy 下去就對了。
還是 最少涵蓋區間,但是難了許多,我竟 WA 了七次才 AC。 三個重點:
這題被歸類在區間的部份,雖然我覺得跟區間沒那麼大關係,反而跟 最小化生產線 很像:
一條生產線有一台機器人,一次只能處理一件工作。現在有 N 個工作,必需 依序 執行,每件工作所需時間不同,求最少需要幾條生產線(幾台機器人)來完成所有工作。
太扯啦,竟然 WA 了六次…Debug 了快二個小時
在處理 3x3 時,沒注意到不只會產生 2x2 的 space 也會有 1x1 的 space…
這題 Greedy,從大的開始放及可。
果然驗證了「過早的優化是萬惡之源」──我手賤地在一個地方優化,但那個優化完全想錯了──於是 WA 到快瘋掉。
參考 http://www.hankcs.com/program/cpp/poj-3040-allowance.html
這題倒還挺簡單的,但我竟然被 %lf
坑了。
從算幾不等式與題目可知,越大的數需要做越多次開根號,所以要越先被處理。如何找大的數呢?用 priority_queue
~