第一眼此题可能是一个经典的区间dp,即dp[l][r][1],dp[l][r][0],l,r代表区间,i代表位于r上的位置是否变换,dp的值代表这段区间的权值和状态转移如下:for(int i=l+1;i<=r;i++){if(s[i]!=s[i-1]){dp[l][i][0]=dp[l][i-1][0];dp[l][i][1]=dp[l][i-1][1]+1;}else{dp[l][i][0]=dp[l][i-1][1];dp[l][i][1]=dp[l][i-1][0]+1;}}res+=min(dp[l][r][0],dp[l][r][1]);}}但是超时,注意到,dp[l][i]...