1776. 牛的基因组学
分析:
- 题目比较难读懂,先解释一下题意,拿题目的案例来说,奶牛存在斑点的位置数量是1,第一个位置,斑点牛的基因是A,G,G,非斑点牛的基因是AAA,因为在第一个位置,非斑点牛的基因有的,斑点牛也有,所以无法判断是否存在斑点,第二个位置,斑点牛的基因是A,A,G,非斑点牛的基因是C,C,C,所以非斑点牛的基因在斑点牛牛中是没有的,故第二个位置可以判断
- 其他的位置是一样的道理
- 所以我们可以推断,只要某个位置上非斑点牛的基因,在斑点牛里也有,那么就无法判断。对于斑点牛组每个字符串的某一个字符必须是非斑点牛组中对应位置没有出现过的。
- 遍历斑点牛组的字符串的每一位。然后遍历非斑点牛组的每个串的对应位 ,假如非斑点牛组的某一个串的某一个字符在斑点牛组出现过,就计数,否则不计入,可采用标记法
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
string a1[300];
string a2[300];
int book[10000 + 10];
int main() {
//标记
int n, m;
cin >> n >> m;
for (int i = 0; i < n; i++) {
cin >> a1[i];
}
for (int i = 0; i < n; i++) {
cin >> a2[i];
}
int ans = 0;
for (int i = 0; i < m; i++) { //控制列
int flag = 0;
memset(book, 0, sizeof(book));
for (int j = 0; j < n; j++) { //控制行
book[a1[j][i] - 'A'] = 1;//行在动,列没动
}
for (int j = 0; j < n; j++) {
if (book[a2[j][i] - 'A'] == 1) {
flag = 1;
break;
}
}
if (flag == 0) {
ans++;
}
}
cout << ans << endl;
}