題目大意
有乙個長度為n的序列a,保證它是乙個01序列,並執行以下兩種操作:
1.單點修改:將位置x上的數翻轉(0變1,1變0);
2.字首修改:將位置1~x上的數翻轉(每個數都0變1,1變0)。
他現在想要最小化翻轉次數,使得數列上的所有數都變為0。
資料保證\(1\le n\le 10^5,0\le a_i\le 1\)。
分析首先我們大致判斷這個乙個dp,通過觀察此題應該是乙個線性dp
通過觀察資料範圍我麼可以推斷出狀態大致應該是f(n , c) / f(n) 維度的狀態表示
其中c為乙個常數。
狀態表示
f(i , 0/1) 表示前i位修改位全部為 0 / 1 的最小消耗代價
狀態計算
牛妹愛數列(動態規劃 dp)
題目描述 牛妹正在玩乙個數列 他手裡有乙個長度為n的序列a,保證它是乙個01序列,並執行以下兩種操作 1.單點修改 將位置x上的數翻轉 0變1,1變0 2.字首修改 將位置1 x上的數翻轉 每個數都0變1,1變0 他現在想要最小化翻轉次數,使得數列上的所有數都變為0。輸入描述 第一行,輸入乙個數n。...
NowCoder 練習 牛妹愛數列(DP)
牛妹愛數列 他手裡有乙個長度為n的序列a,保證它是乙個01序列,並執行以下兩種操作 他現在想要最小化翻轉次數,使得數列上的所有數都變為0。輸出最小翻轉次數 示例1 輸出 min dp n 0 dp n 1 1 include using namespace std pragma gcc optimi...
牛客 牛妹愛數列 K K K
思路 剛開始考慮的是貪心,讓sum 0 遇到1就 0則 找到sum最大的時候,在這個時候反轉一次,這樣是會漏情況的 如 0 0 0 0 0 1 1 1 可以把0變為1 再全部變為0 那麼只能考慮dp了 首先要確定dp的意義,根據要求的 肯定是要dp n 為前n為都為0的 那麼考慮把dp i 定為 前...