一个简单的dp,状态转移方程也很容易写出。我用了两个数组保存dp状态,dp0[i]是把前i个变成0最少用的步数,dp1[i]则是把前i个全部变成1的个数。对于dp0[i],我们可以从dp1[i-1]和dp0[i-1]转移过来,即1)dp0[i]=dp1[i - 1] + 1,将前i-1个或者前i个全部翻转一下,增加一次转换次数。2)dp0[i]=dp0[i - 1] + a[i],前i-1个点都为0,于是只要确定i这个点要不要翻转就行了dp1[i]同理,得到如下方程dp0[i] = min(dp1[i - 1] + 1, dp0[i - 1] + a[i])dp1[i] = min(dp0[i...