就是说,给你一个长度N,和一个长度为N的01串A,然后问你假设B可以是任意一个长度为N的01串,问你A和B的最长公共子序列的长度是多少
感觉一下,然后就是统计A的0的个数和1的个数,较少的那个就是答案
#include <cstdio>
#include <cstring>
#include <vector>
#include <iostream>
#include <string>
#include <cmath>
#include <algorithm>
#include <set>
#include <map>
using namespace std;
char s0[100005];
int main() {
//freopen("input.txt", "r", stdin);
scanf("%s", s0);
int n = strlen(s0);
int zero = 0, one = 0;
for (int i = 0; i < n; ++i)
{
if (s0[i] == '0')
++zero;
else
++one;
}
printf("%d\n", min(zero, one));
//system("pause");
//while (1);
return 0;
}

探讨了给定一个长度N的01串A时,如何通过统计0和1的数量来快速确定A与任意长度相同的01串B之间的最长公共子序列长度。此问题的关键在于理解公共子序列的概念及01串的特性。
271

被折叠的 条评论
为什么被折叠?



