poj1007
2016-03-23 20:41
323 查看
从右往左开始,如果遇到T就加上之前的A~C~G;遇到G就加上之前的A~C………………以此类推 最后再比较!
#include<iostream> #include<string> #include<algorithm> using namespace std; struct ll { int num; int num1; string s; }a[105]; bool cmp(struct ll x,struct ll y) { if(x.num!=y.num) return x.num<y.num; else return x.num1<y.num1; } int process(string s) { int ans=0; int A=0,C=0,G=0,T=0; for(int i=s.length()-1;i>=0;i--) { switch(s[i]) { case 'A': A++; break; case 'C': C++; ans += A; break; case 'G': G++; ans += A+C; break; case 'T': ans += A+C+G; } } return ans; } int main() { int n,m; while(cin>>n>>m) { for(int i=0;i<m;i++) { cin>>a[i].s; a[i].num=process(a[i].s); a[i].num1=i; } sort(a,a+m,cmp); for(int i=0;i<m;i++) { cout<<a[i].s<<endl; } } return 0; }
相关文章推荐
- [转载]关于标准电阻阻值的说明(E6、E12、E24、E48、E96、E192)
- Android Studio实现侧滑菜单
- Linux网络配置基础及命令使用
- F——RGCDQ (HDU 5317)
- 在AWT中使用swt时,出现MessageException类型无法加载的问题
- LeetCodeOJ:206 Reverse Linked List
- CString/string 区别及其转化
- 使用 OAuth2-Server-php 在 Yii 框架上搭建 OAuth2 Server
- 【原】Spark中Master源码分析(二)
- uboot配置过程详解1
- Python装饰器与面向切面编程
- python 网络编程之 TCP编程
- bzoj2732: [HNOI2012]射箭
- 合并表记录
- Intel DPDK配置
- 快速排序
- 解释器模式
- MLA Review之五:回归
- 构造函数的重载
- 40个你可能不知道的Python的特点和技巧