【模拟】相似度
来源:互联网 发布:php免杀大马 编辑:程序博客网 时间:2024/04/30 07:42
相似度
问题描述:
有两个长度相等的DNA序列(只包含A,T,G,C的字符串),我们想知道它的相似度,它的相似度是这样定义的。
首先相似度为0。
若在对应位置出现A与A,则相似度增加1513
若在对应位置出现A与T,则相似度增加666
若在对应位置出现T与T,则相似度增加2324
若在对应位置出现T与G,则相似度增加11
若在对应位置出现T与C,则相似度增加123
若在对应位置出现G与G,则相似度增加3999
若在对应位置出现G与C,则相似度增加521
若在对应位置出现G与A,则相似度增加423
若在对应位置出现C与C,则相似度增加4423
若在对应位置出现C与A,则相似度增加2
输入:
第一行一个数n,表示DNA序列的长度。
第二,三行分别有一个长度为n的字符串,表示两个DNA序列。
输出:
一个整数ans,表示相似度。
输入样例:
4
ATGC
ATGC
输出样例:
12259
数据范围:
n<=1000000
无算法可言。
#include <cstdio>#include <iostream>char a[1000010];char b[1000010];int main(){freopen("similar.in","r",stdin);freopen("similar.out","w",stdout);long n;scanf("%ld%s%s",&n,a+1,b+1);long long ans = 0;for (long i=1;i<n+1;i++){if (a[i]=='A' && b[i]=='A')ans += 1513;else if (a[i]=='A' && b[i]=='T' || a[i]=='T' && b[i]=='A')ans += 666;else if (a[i]=='T' && b[i]=='T')ans += 2324;else if (a[i]=='T' && b[i]=='G' || a[i]=='G' && b[i]=='T')ans += 11;else if (a[i]=='T' && b[i]=='C' || a[i]=='C' && b[i]=='T')ans += 123;else if (a[i]=='G' && b[i]=='G')ans += 3999;else if (a[i]=='G' && b[i]=='C' || a[i]=='C' && b[i]=='G')ans += 521;else if (a[i]=='G' && b[i]=='A' || a[i]=='A' && b[i]=='G')ans += 423;else if (a[i]=='C' && b[i]=='C')ans += 4423;else if (a[i]=='C' && b[i]=='A' || a[i]=='A' && b[i]=='C')ans += 2;}std::cout << ans;return 0;}
- 【模拟】相似度
- 【模拟】相似度 (similar.pas/c/cpp)
- 5-9 集合相似度 (25分) set 模拟
- [NOIP模拟赛]相似字符串
- 相似度
- 相似度算法之余弦相似度
- 字符串相似度/相似字符串变换
- 相似图片搜索(直方图相似度)
- 计算图像相似度
- 图像相似度
- 图片相似度算法
- 相似度测度
- 计算字符串相似度
- JS比较相似度
- Levenshtein distance (相似度)
- 字符串的相似度
- 文本相似度算法
- 句子相似度计算
- 是谁拉你走向了平庸776
- AHP层次分析法
- Algo2-2.c
- 我的博客开通了
- Linux设置串口终端(暂未测试)
- 【模拟】相似度
- 使用指针交换两个整形变量的值
- MYSQL初始化后的内容
- 【Ogre编程入门与进阶】第六章 相机 灯光 阴影
- 博科光纤交换机初始密码
- mysql外连接
- java 获取文件夹所有文件,大小,文件名
- 通过指针变量间接访问另一个变量
- 温馨的痛苦QQ伤感日志_思念是一种幸福的忧伤