计蒜客 硬币 思维

传送门
思路:思维题,每反转一个独立1(0011100,010此类)的代价是2。我们只要统计独立1的个数即可,注意特判全是1和1是前缀的情况。

/**
* From:
* Qingdao Agricultural University
* Created by XiangwangAcmer
* Date : 2019-11-10-21.50.43
* Talk is cheap.Show me your code.
*/
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<queue>
#include<cmath>
#include<cctype>
#include<stack>
#include<map>
#include<string>
#include<cstdlib>
#define ll long long
using namespace std;
const ll maxn = 1e6 + 5;
const ll minn = 1e9 + 5;
const ll mod = 1000000007;
const int INF = 0x3f3f3f3f;
const long long LIMIT = 4294967295LL;
vector<int>v[maxn];
int dp[maxn];
vector<int>G[maxn];
bool row[maxn], col[maxn];
bool flag = 0;
queue<int>q;
char a[maxn];
int main()
{
    ios::sync_with_stdio(false);
    int n;
    cin >> n;
    int sum = 0;
    for(int i = 1; i <= n; i++)
        cin >> a[i];
        int flag1 = 0;
    for(int i =  1; i <= n; i++)
    {
        if(a[i] == '1')
            sum = 1;
        else
        {
            flag1 = i;
            break;
        }
        flag1 = i + 1;///防止全是b
    }
    for(int i = flag1; i <= n; i++)
    {
        if(a[i] == '1' && a[i + 1] != '1')
            sum += 2;
    }
    cout << sum << endl;
    return 0;
}


发布了244 篇原创文章 · 获赞 8 · 访问量 5123

猜你喜欢

转载自blog.csdn.net/weixin_43960370/article/details/103002903
今日推荐