题目大意:有串P,Q,任选一个串S使得三者最长公共子序列最小。
解法:直接统计字符出现次数….出现次数最少的那个就是…..
…………………………………………………………………………………………
#include <iostream> #include <cstdio> #include <string> #include <cstring> #include <fstream> #include <algorithm> #include <cmath> #include <queue> #include <stack> #include <vector> #include <map> #include <set> #include <iomanip> using namespace std; #pragma comment(linker, "/STACK:102400000,102400000") #define maxn 200005 #define MOD 1000000007 #define mem(a , b) memset(a , b , sizeof(a)) #define LL long long #define ULL long long const long long INF=0x3fffffff; string str1 , str2; int main() { int t; cin >> t; while(t--) { cin >> str1 >> str2; int len = str1.size(); int num1[3]= {0 , 0 , 0}; int num2[3]= {0 , 0 , 0}; for(int i = 0 ; i < len ; i ++) { num1[str1[i] - '0'] ++; } for(int i = 0 ; i < len ; i ++) { num2[str2[i] - '0'] ++; } int minn = 99999999; minn = min (num1[0] , min(num1[1] , num1[2])); minn = min(minn , min(num2[0] , min(num2[1] , num2[2]))); cout << minn << endl; } return 0; }