luogu7961.
設 \(f(i, j, k, l)\) 表示考慮前 \(i\) 位,放了 \(j\) 個數,字尾 \(k\) 個 \(1\),狀壓 \(i\) 及前三位結果為 \(l\) 的權值和(無序),轉移平凡,最後分配順序即可。
luogu7962.
有經驗的選手很快發現等價於交換差分陣列,並不難發現差分陣列一定是單谷的,證明不會,但想一下方差反應的是 "資料波動性" 就可以猜測出此結論。
考慮從小往大填數(因為是連續的,比從大往小分為兩部分好處理),注意到方差經典式子 \(d(x) = e(x^2) - e^2(x)\),而資料又非常小,想到設 \(f(i, j)\) 表示填了前 \(ith\) 此時 \(a\) 對應和為 \(j\) 的 \(e(x^2)\)最小值,轉移 \((1)\),狀態量是 \(n \times n \times a_i\) 的,但注意到,非 \(0\) 的差分值至多 \(a_i\) 個,於是直接從非 \(0\) 開始填即可,複雜度為 \((n a_i^2)\)。
luogu7963.
哈哈,哈哈。
考場能寫出來的都是神仙,至少和人類這種生物不太沾邊。
可以大概感受我改題的痛苦(霧):record,10k 起步,雖然有巨大標頭檔案就是了,以及我實現可能比較蠢。
code.
放點很困難,考慮時光倒流乙個個拿走,用並查集維護沒有棋子的只靠三號邊聯通塊以及沒有棋子的豎向二號邊聯通塊以及沒有棋子的橫向二號邊聯通塊,考慮能吃的就是把自己刪除,然後和周圍合併,答案是:三號聯通塊大小 + 三號周圍能吃的 + 二號聯通塊橫豎大小 + 二號繼續延伸能吃的點 + 一號四周掃一遍即可。
但是有乙個問題,二號聯通塊橫豎向走的空白點,可能會被三號聯通塊覆蓋,而且我們不太清楚三號聯通塊周圍可以吃的點,一號二號沒有衝突,但是一號能走的位置也可能被三號覆蓋,不過一三衝突和一二衝突本質相同。
先處理衝突,線段樹合併維護聯通塊內具體點,考慮按行編號,此時橫向聯通塊維護的編號連續,那麼可以區間查詢,考慮再維護一棵,此時按列編號,此時縱向聯通塊維護編號連續,可以區間查詢,這就解決了衝突的問題。
考慮查詢三號可吃點,再維護兩個線段樹,乙個表示聯通塊周圍可吃的黑點,另乙個表示白點,將等級離散化後,按等級建立線段樹,即可快速查詢可吃點。
NOIP2021 棋局 題解
由於存在相對顏色大小關係,我們考慮線段樹合併來維護這個結構。為了後續的討論的方便,我們將lv進行離散化。這裡的離散化是在對統計不產生影響時,將所有的值都變得不同。對於每個連通塊我們維護四顆線段樹分別表示表示 同時維護兩個是為了之後處理直行道路時好處理。初始化時,我們將每個點的相鄰的有互信道路且沒有點...
比賽題解 NOIP2021 題解
可以先把十進位制表示下數字含有 7 的所有數都求出來,然後去列舉這些數的倍數,將其標記。如果當前列舉到的數被標記過了則就不需要再列舉倍數了 因為列舉的倍數肯定也被標記過了 時間複雜度 mathcal n log log n include include include using namespac...
遊記 NOIP2021 遊記
遊 nm,湖大臨時不搞了,新的考場機位不夠,只允許 csp2021 s 1 的初中生參加,親手葬送 noip 省選。退役是不可能的,ys 說盡力讓我參加明年省選,只要實力還在,一次 noip 不算什麼。想參加wc 具體原因請看 遊記 csp2021 s 遊記 湖大突然說不搞了,ys 讓我週六下午在小...