题目来源:ACWING 每日一题;
翻译: 无敌的yxc
本题就是暴力枚举(遇事不决,暴力美学)
把每一个字符串输入代码所示
has数组存储有斑点牛,no存无斑点牛。(顾名思义)
然后用一个媒介数组hash(因为有哈希的原理所以叫hash了)
第一步找has中的基因序列,必须满足所有无斑点牛中某一个位置的所有基因都和有斑点牛的不相同(可以读题来理解
样例
3 8
AATCCCAT
GATTGCAA
GGTCGCAA//有斑点
ACTCCCAG
ACTCGCAT
ACTTCCAT//无斑点
例如:第一个位置(有斑点牛为:A G G,而无斑点为:A A A其中A重复出现了,所以第一个位置没有满足题意的基因)
然后再看第二个位置(有斑点牛为:A A G 而无斑点为:C C C,其中基因C为无斑点牛的特殊基因所以此时ans++;)
那么直接放代码;(看在我这么努力打字的份上点点赞吧(doge))
#include <iostream>
#include <string>
using namespace std;
const int N=110;
string has[N],no[N];
int n,m;
int ans;
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++) cin>>has[i];
for(int i=0;i<n;i++) cin>>no[i];
for(int i=0;i<m;i++)
{
bool flag=false;
int hash[97]={};
for(int j=0;j<n;j++)
hash[has[j][i]]++;
for(int j=0;j<n;j++)
if(hash[no[j][i]])
{flag=true;break;}
if(!flag)
ans++;
}
cout<<ans;
return 0;
}
因为大写字符的ASII码最大才96所以我定义成了97
可以来我的acw博客瞅瞅
作者:孑孑
链接:AcWing 1776. 牛的基因组学 - AcWing
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。