poj1007

深藏阁楼爱情的钟 2021-11-23 15:38 346阅读 0赞

1**.链接地址**

https://vjudge.net/problem/POJ-1007

2**.问题描述**

You are responsible for cataloguing a sequence of DNA strings (sequences containing only the four letters A, C, G, and T). However, you want to catalog them, not in alphabetical order, but rather in order of ``sortedness’’, from ``most sorted’’ to ``least sorted’’. All the strings are of the same length.

输入样例

  1. 10 6
  2. AACATGAAGG
  3. TTTTGGCCAA
  4. TTTGGCCAAA
  5. GATCAGATTT
  6. CCCGGGGGGA
  7. ATCGATGCAT

输出样例

  1. CCCGGGGGGA
  2. AACATGAAGG
  3. GATCAGATTT
  4. ATCGATGCAT
  5. TTTTGGCCAA
  6. TTTGGCCAAA

3**.解题思路**

对每个序列求其中逆序数然后排序即可

4**.算法实现源代码**

  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4. struct Str
  5. {
  6. char s[51];
  7. int n;
  8. };
  9. bool cmp(const Str &a,const Str &b)
  10. {
  11. if(a.n<b.n)
  12. return 1;
  13. return 0;
  14. }
  15. int main()
  16. {
  17. int n,m,i,j;
  18. Str str[101];
  19. while(cin>>n>>m)
  20. {
  21. for(i=1;i<=m;i++)
  22. cin>>str[i].s;
  23. for(i=1;i<=m;i++)
  24. {
  25. int num=0;
  26. int A=0,C=0,G=0;
  27. for(j=n-1;j>=0;j--)
  28. {
  29. switch(str[i].s[j])
  30. {
  31. case 'A':A++;break;
  32. case 'C':C++;num+=A;break;
  33. case 'G':G++;num+=A;num+=C;break;
  34. case 'T':num+=A;num+=C;num+=G;break;
  35. default:break;
  36. }
  37. }
  38. str[i].n = num;
  39. }
  40. sort(str+1,str+m+1,cmp);
  41. for(i=1;i<=m;i++)
  42. cout<<str[i].s<<endl;
  43. }
  44. return 0;
  45. }

转载于:https://www.cnblogs.com/KasenBob/p/11217496.html

发表评论

表情:
评论列表 (有 0 条评论,346人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ZROI#1007

    [ZROI\1007][ZROI_1007] 也是看起来非常不可做的一个题. 仔细思考,发现了一个很\\(cooooool\\)的事情: 他是不是让我求最小独立集覆盖..

    相关 1007 级数求和

    题目描述 Description 已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。   现给出一个整数K(1<=k<=

    相关 P1007独木桥

    题目背景 战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景

    相关 URAL--1007 codewords

    三种信息传递过程中可能出错的方式,让你恢复原来正确的信息。 我用的是分类暴搜,用字符串模拟的,这里还是是可行的,不过debug快坑死了o(╯□╰)o...... 后面还有一

    相关 POJ1007解题报告

    其实就是求线性代数里面所谓的逆序数,既然是逆序数那肯定从后往前计数,通过计算每个字符的逆序数最终算出整个字符串的逆序数。用switch进行条件判断, 比如CAGT,直观上看这

    相关 P1007 独木桥

    题目背景 战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景

    相关 PAT乙级1007

    1007 素数对猜想(20 分) 让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻