真的是超級簡單的一次信心賽,但我還是爆炸……
T1:秒切
T2:秒切
T3:這題意是啥???
明天中午有直播講解。到時候再把不會的題改了。
T1:
入門難度。
一條n個節點的鏈,你可以跳過其中k段,求從1到n的最小長度。
貪心跳最大即可。暴力能過。
掃一遍,維護一個當前k段長度和總長度和,當前k段長度打擂臺求最大,輸出總長度減去最大k段長度。
\(O(n)\)。
T2:
依舊入門難度。一段01序列,求有多少個連續(均爲0或均爲1)子串。
掃一遍判斷當前值與上一個值是否相等即可。暴力能過。
\(O(n)\)。
T3:
給定\(S\),\(T\)初始爲空串,每次操作在\(T\)最前或最後插入一個字符,並求有多少個不同的\(l\),使得\(l\)範圍內沒有對應相同的元素。
(即$\forall i\in[1,~l],S[i] \not= T[T.size()-l+i] $)
17分:
考慮類似於最大公共子串的寫法。
表格中的一個格子\((x,~y)\)爲true,當且僅當對應的\(S[x]\)與\(T[y]\)不同
每次維護\(T\),並重新求一次\(l\)。
把每種相同顏色的方格稱爲一條對角線,由於只有\(T\)的尾部和\(S\)的頭部能重合,合法的對角線只有上圖中的幾條。
每次掃一遍圖中有幾條對角線,線上所有格子均爲true。
\(O(mn^2)\)。(大概吧)
50分:
由於每次只能\(T\)的首尾添加元素,考慮兩種情況:
1.若在尾部添加:
則只需要考慮黑色框起來的幾個格子。
如果第一個格子\((0,~3)\)爲true,則ans++。
整一個bool的vector存儲每條對角線是否成立(即均爲true),如果其餘幾個格子所在的對角線成立,而這個格子不爲true,則ans--。
2.若在頭部添加:
則需要增加一條新的對角線,跑一遍這個對角線是否成立。
總體\(O(mn)\)。大概吧。
貌似bitset優化後70pts,再開個O2就A了
100分:
不會。待更。
T4:
看上去就不太可做的一道多項式求和。
8分:
模擬題意。
16分:
加一個記憶化一類的優化。
100分:
不會。待更。