洛谷 P7767 DNA 題解

2022-09-10 05:42:09 字數 1342 閱讀 2806

雖然我似乎解釋明了貪心是可行的,但是我還是有些不爽

dp 做更直觀吧

入手這道題,看了看,就直接奔去寫貪心。

至於如何貪心?

題目大意:對於每乙個操作有兩種操作選擇,使終串全為 a

\texttt

a 。對於這道題,貪心只考慮區域性最優解,不能影響到其他位置

於是,就有兩種情況要討論:

對於單獨出現的 b

\texttt

b,執行方法 1 需要 1 步,即直接修改(操作 1)。並且不會對字串造成其他影響。

執行方法 2 需要 2 步,才能使字串不會出現變化。

比如說:aabaa

\texttt

aabaa

在位置3執行操作2,bbaaa

\texttt

bbaaa

(操作 2)

再在位置2執行操作2,aaaaa

\texttt

aaaaa

(操作 2)

顯然,當出現單獨的 b

\texttt

b 時,執行方法 1 改變單個字元更優。

對於出現一串的 bbbb......

\texttt

bbbb......

執行方法 1 需要執行 ∣s∣

|s|∣s

∣ 步,s

ss 為全 b

\texttt

b 子串。

執行方法 2 需要執行 2 步,與 「單獨的 b」中考慮一樣。

由於 ∣s∣

≥2

|s| \ge 2

∣s∣≥

2,所以,在出現連續的 b

\texttt

b 串時,執行方法 2 更優於方法 1。

綜上,需要不影響其他步驟,從右往左掃;

單獨的 b

\texttt

b 就直接修改;

連續的 b

\texttt

b 就通過方法 2 改變(其實第二次操作沒必要進行,因為執行結束後會繼續往前掃,自然會繼續改變)。

上**!

#

include

using

namespace std;

intmain()

}if(str[i]

+t%2

=='b'

) len++;}

cout<(len!=0)

;//結尾還剩餘其他 b

return0;

}

還有更好的貪心思路要告訴我啊 qaq。

洛谷 P1101 題解

這道題可以用深搜 回溯 來寫,相信大部分人都是這麼想的,但是有些人可能在一些地方饒了半天,所以這裡就貼一下我的思路,個人覺得自己的很好懂,除了tx和ty那裡,但是tx和ty的那種用法對於輸出路徑的題目一般很實用 這個算是比較簡單的吧,題目裡給出了具體要找的字串,我們要做的就是對它進行8個方向的搜尋,...

洛谷 P1169 題解

請你在乙個黑白矩陣中選出乙個長方形 含正方形 和正方形的子矩陣,使得所有相鄰的點顏色不一樣。矩陣大小 兩條邊都 2000 2000 2 000輸入 3 31 0 1 0 1 0 1 0 0輸出4 6解釋給定矩陣 正方形 長方形 我的控制台是萌萌噠 ffc0cb粉色 乙個小技巧 如果您的控制台是像我的...

題解 洛谷 P3332

題目描述 權值線段樹套線段樹板子題 首先觀察題目,判斷為二維偏序問題 操作1為區間修改,所以一定是外部線段樹維護權值,內部線段樹維護所在區間,否則時間複雜度 qwq 為方便查詢,雜湊時我採用雜湊每個數的相反數的方法將求第k大轉換為求第k小 詢問可以直接想到的做法就是二分答案,查詢1 ans在區間內的...