1. 程式人生 > 其它 >noip模擬14

noip模擬14

這場比賽又因為陣列開小暴斃,前兩道掛了一共 \(40+20=60\) 分,\(t3\) 由於過於自信口胡 \(dp\) +複雜度算錯沒打雜湊暴力又白丟 \(40\) 分(再也找不出 \(t3\) 這麼低的了……),險些掉出前20


\(\color{white}{zkx\ AK\ IOI}\)

A. 隊長快跑

首先第一感覺可能是樹狀陣列優化 \(\mathrm{dp}\) 的那一類套路
首先宣告一下,我一般不習慣 \(b_i< a_j\) 這樣的條件,所以倒序列舉以便把限制條件翻轉過來
開始想狀態,一通嘗試後發現一維行不通,理性分析一下是應為 \(b\) 陣列的單調性不確定,若果當前的 a 比上一個的 \(b\)

大,但並不代表比整個序列裡面所有的 \(b\) 都大(進一步理性分析一下為什麼沒有 \(n^2\) 的部分分
那就來兩維,設 \(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\)