/* 通过率:14% 题目要求; 定义一个01串的价值为,不断删除相邻相同字符,直到不能删除,剩下的字符串长度。 输入字符串长度n,输入可以修改的次数k(k表示可以把01串中的0改为1或者把1改为0的次数), 输入原来的01串。 输出经过修改后字符串的最小价值。 输入: 3 1 101 输出; 1 输入: 2 1 00 输出: 2 */ #include <iostream> using namespace std; #include<vector> #include<algorithm> int main() { int n, k; //字符串长度n,修改次数k cin >> n >> k; string s; //字符串 cin >> s; vector<vector<int>> dp(n + 1, vector<int>(k + 1, INT_MAX)); //动态规划,二维数组 dp[0][0] = 0; for (int i = 1; i <= n; i++) { //写得太烂,就不展示了 } cout << dp[n][k] << endl; return 0; } // 64 位输出请用 printf("%lld")