洛谷月賽 20191109

本文作者MiserWeyte

真的是超級簡單的一次信心賽,但我還是爆炸……

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分:

不會。待更。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章