2017-07-15 19:47:42
03:基因相关性
-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对,以判断该比对的DNA是否具有相关性。
现比对两条长度相同的DNA序列。首先定义两条DNA序列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条DNA序列是相关的,否则不相关。
输入
- 有三行,第一行是用来判定出两条DNA序列是否相关的阈值,随后2行是两条DNA序列(长度不大于500)。 输出
- 若两条DNA序列相关,则输出“yes”,否则输出“no”。 样例输入
-
0.85 ATCGCCGTAAGTAACGGTTTTAAATAGGCC ATCGCCGGAAGTAACGGTCTTAAATAGGCC
样例输出
-
yes
8分答案
#include<stdio.h> #include<iostream> #include<algorithm> #include<string.h> #include<math.h> using namespace std; string a; string b; int main() { int i,j; double k,m,v,maxn; cin>>m; cin>>a>>b; v=a.length(); for(i=0;i<v;i++) { for(j=0;j<v;j++) { if(a[i]==b[j]) maxn++; } } k=maxn/v; if(k>=m) cout<<"yes"<<endl; else cout<<"no"<<endl; return 0; }
正确答案
include<cstdio> #include<cstring> char a[500],b[500]; double m=0,l,n; int main() { scanf("%lf\n",&n); gets(a); gets(b); l=strlen(a); for(int i=0;i<l;i++) if(a[i]==b[i]) m++; if(m/l>=n) printf("yes"); else printf("no"); return 0; }