2021 7 21 校內模擬賽遊記

2022-09-10 21:39:35 字數 1447 閱讀 5974

為什麼想了那麼久的 t2 都不會啊 /yiw

定義 \(f(n)\) 在 \(n < 10\) 時結果是 \(n\),否則設 \(d(n)\) 是 \(n\) 在十進位制下各位數的和,求 \(x \in [l, r], f(x) = a\) 的個數。

看到題目發現所有的 \(f(x)\) 都可以化成 \(f(d(n))\), 於是就準備寫數字 dp 了,可是想起以前寫數字 dp 寫掛的悲慘遭遇,就覺得第一題不會直接上數字 dp 的。

然後容易發現 \(f(n)\) 是 \(1, 2, 3, \cdots 9, 1, 2, \cdots, 9, 1, \cdots\) 這樣子迴圈的,那麼就直接乙個式子算出來就可以了。證明的話,首先,如果不進製那麼肯定是成立的,因為數加一,和也一定加一。所以只需要考慮進製的情況,而進製前到進製後,最後的那個 \(9\) 在模 \(9\) 意義下就是 \(0\),所以還是給整個加了 \(1\)。

t1 半小時不到就 a 了,然後就開始了悲慘的 t2。

給定序列 \(a\),每次從中取出所有 \(x\),放到頭或者尾,求最少步數使 \(a\) 單調遞增。

先模擬了一堆小樣例,企圖定下乙個下界再進行構造,然後啥發現沒有,這個換來換去似乎沒有任何的規律。

然後專心考慮換到一邊發生了什麼變化。

容易發現換過來的一堆必須是連續的,因為題目不讓我們從中間插進去,於是想著列舉乙個中間的斷點,然後兩邊貪心一波。可是總能發現一些 hack 情況,於是一直搞一直搞搞了個極其複雜的做法。

寫完後又一直調一直調,因為過不了大樣例就一直找 hack, 一直改,死活不願意放棄。

最後得分 \(0\)。

其實在想著列舉中間斷點的時候就已經沒有救了。

誰!告!訴!你!每!個!都!要!移!動!

事實上,考慮不移動的會簡單很多。只要中間沒有交叉,其它的全都排左排右就可以了。

中間不需要換的同樣也是連續的。我在前面的貪心中考慮的諸多需要特判的移動「減免」情況在這裡都不用考慮,因為肯定會被包括進去。

但還沒有結束,因為 \(o(n^2)\) 是過不了的。

不過很容易想到連續的不重複的部分直接搞個簡單 dp 就行了。

找到最多的abccbc子串。

我怎麼會傻到認為直接大力 dp 就能過的?顯然aabbcc就是反例, 因為這裡是可以交叉的。

有乙個重要的性質,c全部扔到最後肯定是最優的。那麼可以列舉最後的幾個c然後驗證。

這個有單調性,所以二分就行了。

t2 都想不出來想什麼 d!

在 t2 做了很久的情況下真的是很難說服自己把它放棄——雖然 sop 如是要求。

請嚴格遵守 sop,說不定下一題做一會兒再回來就能想到了。

校內模擬賽遊記

t1 兩眼題好評。看了一眼題,心想這不是秒切,然後寫完了交上去發現題意理解有問題。樣例非常良心的暴露了我的問題,小改一下就過了。第一眼看覺得什麼玩意。因為腦抽了時間複雜度想成 o n 2 了,直接打表素數判斷,發現打表的應用實現上有困難,就棄掉了這個想法 當時真的nt,打表有問題篩一下質數打暴力也可...

2018 10 12 校內模擬賽

分析 題一 一道模擬題 但模擬也是有很多坑的 寫出一道題後,一定要自己試很多很多很多組不同的資料 比如這道題,幾乎我試的每一組資料都找出了我程式的bug,好險 分析 題二 好題!應該是和松鼠聚會這道題本質一樣的 首先我們需要推導出任意兩個點 x,y a,b 之間能夠到達彼此所需要走的最短步數,由於可...

1105 校內模擬賽

題一 差分約束or帶權並查集?不啊,zz了,簡單模擬即可 我簡直服了我自己了,想複雜了 直接對每乙個聯通塊隨便找乙個點賦位置,然後dfs繼續找下去,給每乙個點賦值,如果在搜尋的過程中,發現了有衝突,就是impossible了 注意加邊的時候加雙向邊,因為你是從隨便乙個點開始搜尋的 然後這麼簡單的乙個...