hiho 有序01字串 dp

2022-02-19 20:25:52 字數 752 閱讀 3679

時間限制:10000ms

單點時限:1000ms

記憶體限制:256mb

對於乙個01字串,你每次可以將乙個0修改成1,或者將乙個1修改成0。那麼,你最少需要修改多少次才能把乙個01串 s 變為有序01字串(有序01字串是指滿足所有0在所有1之前的01串)呢?

第一行是乙個整數 t,代表測試資料的組數。(1 ≤ t ≤ 10)

以下t行每行包含乙個01串 s 。(1 ≤ |s| ≤ 1000)

對於每組測試資料輸出最少需要修改的次數。

樣例輸入

3

000111

010001

100000

樣例輸出

011

思路:找到1的時候考慮是否改成0;

min(1後面的字串最小改變值+1,1後面的0的個數;

#includeusing

namespace

std;

#define ll __int64

#define mod 1000000007

#define pi (4*atan(1.0))

const

int n=2e3+10,m=1e6+10,inf=1e9+10

;char

a[n];

intzero[n],x;

int dp(char *a,int

len)

intmain()

return0;

}

藍橋 01字串

include defint max 5 int f max int main if i j f j 1 for k 1 k 5 k printf d n a k for i 1 i 5 i include int a 32 int min 1 int b 34 int main for i 0 i...

0 1字串問題

程式設計找出符合下列條件的字串 字串中僅包含0和1兩個字元 字串的長度為n 字串中不含有三個連續的相同子串。輸入檔案僅包含乙個整數n 0 n 35 表示字串的長度。輸出檔案僅包含乙個整數,表示符合上述條件的字串的總數。24 include include includeusing namespace...

最長01字串

題目描述 已知乙個長度為n的字串,只由0和1組成,求乙個最長的子串,要求該子串出0和1出現的次數相等。要求演算法時間複雜度盡可能的低。比如 1000010111000001,加粗的部分有4個0 4個1 思路 1 最簡單的想法就是遍歷所有的子串,之後判斷該子串是否滿足條件 n 2子串,每個子串掃一遍判...