CodeForces - 1363B

equation_H發表於2020-09-25

題意:輸入一個只有1和0的字串,將此字串變成11111110000000或0000000001111111型的最小改變數。
思路:比如一個字串長為5,那就列舉變為01111、00111、00011、00001、00000、10000、11000、11100、11110、11111.每個最小改變數即可。只要知道思路,程式碼不難。但是這思路怎麼想到呢!!!難啊

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--){
        string s;
        cin>>s;
        int mm=2147483645;
        int len=s.length();
        for(int i=0;i<len;i++){
            int sum=0;
            for(int j=0;j<i;j++){
                if(s[j]!='1') sum++;
            }
            for(int j=i;j<len;j++){
                if(s[j]!='0') sum++;
            }
            mm=min(mm,sum);
        }
        for(int i=0;i<len;i++){
            int sum=0;
            for(int j=0;j<i;j++){
                if(s[j]!='0') sum++;
            }
            for(int j=i;j<len;j++){
                if(s[j]!='1') sum++;
            }
            mm=min(mm,sum);
        }
        cout<<mm<<endl;
    }
}

相關文章