牛的基因(C++)

题目描述
    农夫舒婧拥有n头有斑点的奶牛和n头没有斑点的奶牛。由于她刚刚完成了关于牛的基因的一门课程,所以她相信,她的奶牛身上的斑点是由于奶牛基因组上单个位置的基因突变引起的。农夫舒婧花费了巨大的代价,把她的奶牛的基因组进行了排序。每一个基因组都是一个由ACGT四个字母组成的长度为m的字符串。当她排列她的牛的基因组时,她得到了以下的表格,(此时n=3)
位置 1 2 3 4 5 6 7 M
有斑点的牛 1 A A T C C C A T
有斑点的牛 2 G A T T G C A A
有斑点的牛 3 G G T C G C A A
无斑点的牛 1 A C T C C C A G
无斑点的牛 2 A C T C G C A T
无斑点的牛 3 A C T T C C A T
    仔细观察这张表,她推测,位置2是基因组中可能解释斑点的潜在位置。也就是说,通过查看这张表,农夫舒婧可以预测她的哪头奶牛是有斑点的,哪些不是(这里,A或G意味着斑点,C意味着无斑点; T是无关紧要的,因为它不会出现在任何奶牛的位置2)。位置1本身不足以解释斑点,因为这个位置的A可能表明一头斑点的牛或一头无斑点牛。
    给出农民舒婧的奶牛的基因组,请计算潜在解释斑点的数目。
输入输出格式
输入格式(文件名  cownomics.in):

输入数据第一行包含两个小于100的正整数N和M。下一行至第N+1行每行包含一串长为M的字符串,表示斑点牛的基因组。第N+2行至最后每行同样包含一串长为M的字符串,表示普通奶牛的基因组。
输出格式(文件名 cownomics.out):
请计算在基因组中可能导致斑点病的位置的数量(一个大于等于0,小于等于M的整数)。
样例输入输出
样本输入

3 8
AATCCCAT
GATTGCAA
GGTCGCAA
ACTCCCAG
ACTCGCAT
ACTTCCAT
样本输出
1
思路
    首先读入,然后一列列搜,有斑点的牛中出现的字母在无斑点奶牛中未出现,就累加,搜索完后的累加值就是答案,将其输出。
程序如下
#include<bits/stdc++.h>
using namespace std;


int main()
{
bool f;
int n,m,ans=0,a['Z']={0};
char b[201][101];
cin>>n>>m;
for(int i=1;i<=n*2;i++)
for(int j=1;j<=m;j++)
{
cin>>b[i][j];
}
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
a[b[j][i]]=1;
f=true;
for(int j=n+1;j<=n*2;j++)
if(a[b[j][i]]==1)
{
f=false;
break;
}
if(f==true) ans+=1;
a['A']=0;
a['C']=0;
a['G']=0;
a['T']=0;
}
cout<<ans<<endl;
return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值