给出一个只包含 0 和 1 的 01 串 s ,下标从 1 开始,设第 i 位的价值为 vali  ,则价值定义如下: 1. i=1时:val1  = 1 2. i>1时: 2.1 若 si  ≠ si-1  , vali  = 1 2.2 若 si  = si-1  , vali  = vali-1  + 1 字符串的价值等于 val1  + val2  + val3  + … + valn 你可以删除 s 的任意个字符,问这个串的最大价值是多少。

区块链毕设网qklbishe.com为您提供问题的解答

给出一个只包含 0 和 1 的 01 串 s ,下标从 1 开始,设第 i 位的价值为 vali ,则价值定义如下:
1. i=1时:val1 = 1
2. i>1时:
2.1 若 si ≠ si-1 , vali = 1
2.2 若 si = si-1 , vali = vali-1 + 1
字符串的价值等于 val1 + val2 + val3 + … + valn

你可以删除 s 的任意个字符,问这个串的最大价值是多少。

#include <bits/stdc++.h> using namespace std; int main() {     int n;     scanf("%d", &n);     char s[5003];     scanf("%s", s);     int k[2];     int sum[5005];     sum[0] = 1;     for(int i = 1 ; i < n ; i++) {         sum[i] = sum[i - 1] + 1;         int cc = 1;         for(int g = i - 1 ; g >= 0 ; g--) {             if(s[i] == s[g]) {                 cc++;             } else {                 if(sum[g] + (cc + 1) * cc / 2 > sum[i])                     sum[i] = sum[g] + (cc + 1) * cc / 2;             }         }         if(sum[i] < (cc + 1) * cc / 2) {             sum[i] = (cc + 1) * cc / 2;         }     }     printf("%dn", sum[n - 1]); }

编辑于 今天 10:24:12

以上就是关于问题给出一个只包含 0 和 1 的 01 串 s ,下标从 1 开始,设第 i 位的价值为 vali  ,则价值定义如下:
1. i=1时:val1  = 1 2. i>1时: 2.1 若 si  ≠ si-1  , vali  = 1 2.2 若 si  = si-1  , vali  = vali-1  + 1
字符串的价值等于 val1  + val2  + val3  + … + valn

你可以删除 s 的任意个字符,问这个串的最大价值是多少。的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 给出一个只包含 0 和 1 的 01 串 s ,下标从 1 开始,设第 i 位的价值为 vali  ,则价值定义如下: 1. i=1时:val1  = 1 2. i>1时: 2.1 若 si  ≠ si-1  , vali  = 1 2.2 若 si  = si-1  , vali  = vali-1  + 1 字符串的价值等于 val1  + val2  + val3  + … + valn 你可以删除 s 的任意个字符,问这个串的最大价值是多少。