一个字符只有 被选 和 不被选 两个状态(被选 需要满足条件 s[i] != s[i - 1])所以 状态设置成 dp[N][2]; 当不选的时候 dp[i][0] = max(dp[i - 1][1],dp[i - 1][0])dp[i][1] = dp[i][0];当 满足条件 时,dp[i][1] = max(dp[i][0], dp[i -1][0] + a[i] + a[i - 1])记得long long void solve() { scanf("%lld", &n); for (int i = 1; i <= n; i++) scanf(&qu...