01串取反

小美定义一个 01 串的权值为:每次操作选择一位取反,使得相邻字符都不相等的最小操作次数。
例如,"10001"的权值是 1,因为只需要修改一次:对第三个字符取反即可。
现在小美拿到了一个 01 串,她希望你求出所有非空连续子串的权值之和,你能帮帮她吗?


分析:

  先从第一个位置考虑,后面确定递推式
 


#include
typedef long long ll;
using namespace std;
void solve()
{
  string s;
    cin>>s;
    ll sums=0;
    ll n=s.size();
    for(ll i=0;i

你可能感兴趣的:(算法,数据结构)