noip模擬14
阿新 • • 發佈:2021-07-14
這場比賽又因為陣列開小暴斃,前兩道掛了一共 \(40+20=60\) 分,\(t3\) 由於過於自信口胡 \(dp\) +複雜度算錯沒打雜湊暴力又白丟 \(40\) 分(再也找不出 \(t3\) 這麼低的了……),險些掉出前20
\(\color{white}{zkx\ AK\ IOI}\)
A. 隊長快跑
首先第一感覺可能是樹狀陣列優化 \(\mathrm{dp}\) 的那一類套路
首先宣告一下,我一般不習慣 \(b_i< a_j\) 這樣的條件,所以倒序列舉以便把限制條件翻轉過來
開始想狀態,一通嘗試後發現一維行不通,理性分析一下是應為 \(b\) 陣列的單調性不確定,若果當前的 a 比上一個的 \(b\)
那就來兩維,設 \(f[i][j]\) 表示以 \(i\) 開始的且序列裡 \(b\) 的最大值為 \(j\) 的序列最大長度
轉移方程式: \[f[i][max(b[i],k)]=max\{f[j][k]+1\} \]
好的,這樣60分輕鬆到手
再考慮優化,這個轉移方程式比較特殊,是由 \(max\) 引起的,那麼想要把這個拆掉,可以分類討論 \(b_i\) 與 \(k\) 的大小關係,這樣要麼轉化成後面多個值的最大值更新到 \(b_i\) 這一個值上,要麼相當於把自己的值 \(+1\)
B. 影魔
開題 cyh 巨佬驚呼原題,我一看題目想著又完了,做過是做過,但是連題是啥都不記得了,直接的是個什麼陰間資料結構,豈不是又要完~
吸取上次超級樹的教訓,還是先看別的題吧……
萬萬沒想到,考完試一看才發現這套題套的是背景,和以前的題沒啥關係……
這道題可以每個點開個 \(vector\)