基因相关性
题目描述
为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的 DNA 进行比对,以判断该比对的 DNA 是否具有相关性。
现比对两条长度相同的 DNA 序列。首先定义两条 DNA 序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条 DNA 序列是相关的,否则不相关。
输入格式
有三行,第一行是用来判定出两条 DNA 序列是否相关的阈值,随后 2 2 2 行是两条 DNA 序列(长度不大于 500 500 500)。
输出格式
若两条 DNA 序列相关,则输出 yes
,否则输出no
。
样例 #1
样例输入 #1
0.85
ATCGCCGTAAGTAACGGTTTTAAATAGGCC
ATCGCCGGAAGTAACGGTCTTAAATAGGCC
样例输出 #1
yes
代码内容
// #include <iostream>
// #include <algorithm>
// #include <cstring>
// #include <sstream>//整型转字符串
// #include <stack>//栈
// #include <deque>//堆/优先队列
// #include <queue>//队列
// #include <map>//映射
// #include <unordered_map>//哈希表
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
double c,ans;//c存储阈值,ans存储相似度
string a,b;//a,b两个数组存储字符串
int main()
{
cin>>c>>a>>b;
for(ll i=0;i<a.size();i++)
{
if(a[i]==b[i]) ans++;//依次比对
}
if(ans/a.size()>=c) cout<<"yes"<<endl;
else cout<<"no"<<endl;
return 0;
}