hihoCoder太阁最新面经算法竞赛5 register

Ended

Participants:118

Verdict:Accepted
Score:100 / 100
Submitted:2016-06-24 09:27:43

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
using namespace std; 
const int maxn = 1007; 
int f[maxn]; 
int g[maxn]; 
int main(int argc, char *argv[])
{
    int T; 
    cin >> T; 
    while (T--)
    {
        string s; 
        cin >> s; 
        int len = s.length(); 
        f[0] = (s[0] == '0') ? 0 : 1; 
        g[0] = (s[0] == '0') ? 1 : 0; 
        for (int i = 1; i < len; i++)
        {
            f[i] = (s[i] == '1') ? f[i-1] + 1 : f[i-1]; 
            g[i] = (s[i] == '1') ? min(f[i-1], g[i-1]) : min(f[i-1]+1, g[i-1]+1); 
        }
        cout << min(f[len-1], g[len-1]) << endl;
    }
    return 0; 
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX