2014-08-22

 

题目意思:

按照各个字符串的逆序数排序(稳定排序,即若A=B,则AB的顺序还是原来的样子)

思路:


求出每个字符串的逆序数后,排序输出即可

代码:

  1. //Memory Time
  2. // 352K 16MS
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6.  
  7. typedef struct Dna{
  8. int num;
  9. char sequence[];
  10. }DNASQ;
  11.  
  12. //计算逆序数
  13. int count(char sq[],int len){
  14. int a,c,g,i;
  15. int count;
  16. a=c=g=;
  17. for(i=len-;i>=;i--){
  18. switch (sq[i]){
  19. case 'A':
  20. {
  21. a++;
  22. break;
  23. }
  24. case 'C':
  25. {
  26. c++;
  27. count+=a;
  28. break;
  29. }
  30. case 'G':
  31. {
  32. g++;
  33. count=count+a+c;
  34. break;
  35. }
  36. case 'T':
  37. {
  38. count=count+a+c+g;
  39. break;
  40. }
  41. default:
  42. break;
  43. }
  44. }
  45. return count;
  46. }
  47.  
  48. int partition(DNASQ sq[],int left,int right){
  49. int i=left;
  50. int j=right;
  51. DNASQ temp=sq[i];
  52. while(i!=j){
  53. while(sq[j].num>=temp.num&&i<j)
  54. j--;
  55. while(sq[i].num<=temp.num&&i<j)
  56. i++;
  57. if(i<j)
  58. {
  59. DNASQ t;
  60. t=sq[i];
  61. sq[i]=sq[j];
  62. sq[j]=t;
  63. }
  64. }
  65. sq[left]=sq[i];
  66. sq[i]=temp;
  67. return i;
  68. }
  69. //快排
  70. void qSort(DNASQ sq[],int left,int right){
  71. int dq=;
  72. if(left<right){
  73. dq=partition(sq,left,right);
  74. qSort(sq,left,dq-);
  75. qSort(sq,dq+,right);
  76. }
  77. }
  78.  
  79. int main(){
  80. DNASQ dnasq[];
  81. int n,m,i;
  82. scanf("%d%d",&n,&m);
  83. for(i=;i<m;i++){
  84. scanf("%s",dnasq[i].sequence);
  85. dnasq[i].num=count(dnasq[i].sequence,n);
  86. }
  87. qSort(dnasq,,m-);
  88. for(i=;i<m;i++){
  89. printf("%s\n",dnasq[i].sequence);
  90. }
  91. return ;
  92. }

 PS:这题由于字符串中只含有AGCT四个字母,所以在求逆序数的时候可以直接计数就行了。

POJ1007的更多相关文章

  1. 算法:POJ1007 DNA sorting

    这题比较简单,重点应该在如何减少循环次数. package practice; import java.io.BufferedInputStream; import java.util.Map; im ...

  2. 【poj1007】 DNA Sorting

    http://poj.org/problem?id=1007 (题目链接) 题意 给出m个字符串,将其按照逆序对个数递增输出. Solution 树状数组经典应用. 代码 // poj1007 #in ...

  3. [POJ1007]DNA Sorting

    [POJ1007]DNA Sorting 试题描述 One measure of ``unsortedness'' in a sequence is the number of pairs of en ...

  4. poj1007 qsort快排

    这道题比较简单,但通过这个题我学会了使用c++内置的qsort函数用法,收获还是很大的! 首先简要介绍一下qsort函数. 1.它是快速排序,所以就是不稳定的.(不稳定意思就是张三.李四成绩都是90, ...

  5. C# ACM poj1007

    求逆序数,快排 public static void acm1007(int a, string[] c) { Dictionary<int, string> dic = new Dict ...

  6. 求字符数组逆序数(poj1007)

    int InversionNumber(char* s,int len) { int ans=0;  //s逆序数 int A,C,G;  //各个字母出现次数,T是最大的,无需计算T出现次数 A=C ...

  7. 北大poj- 1007

    DNA排序 逆序数可以用来描述一个序列混乱程度的量.例如,“DAABEC”的逆序数为5,其中D大于他右边的4个数,E大于他右边的1个数,4+1=5:又如,“ZWQM”的逆序数为3+2+1+0=6. 现 ...

  8. poj1007——DNA Sorting

    Description One measure of ``unsortedness'' in a sequence is the number of pairs of entries that are ...

  9. ACM训练计划建议(写给本校acmer,欢迎围观和指正)

    ACM训练计划建议 From:freecode#  Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...

随机推荐

  1. 经典面试题(二)附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯

    1.正整数序列Q中的每个元素都至少能被正整数a和b中的一个整除,现给定a和b,需要计算出Q中的前几项, 例如,当a=3,b=5,N=6时,序列为3,5,6,9,10,12 (1).设计一个函数void ...

  2. Xmemcached

    http://blog.csdn.net/yuwenruli/article/details/8478201

  3. StrPCopy与StrPas功能正好相反,作用是与C语言字符串和Delphi的String相互转化

    StrPCopy = Copies an AnsiString (long string) to a null-terminated string.function StrPCopy(Dest: PA ...

  4. 何谓Dandy?它是一种着装风格

    何谓Dandy?它是一种着装风格_女性_腾讯网 何谓Dandy?它是一种着装风格 2012年02月17日09:47腾讯专稿我要评论(0) 字号:T|T   何谓Dandyism?它是一种风格,词根Da ...

  5. ubuntu登陆后一闪回到登陆界面

    ubuntu登陆后一闪回到登陆界面   最后发现居然是我的环境变量配置问题........   解决方法:   先CTRL+ALT+F1   root进去, 查看nickleo用户为什么登录失败 ca ...

  6. 面向对象继承实例(a如何继承b)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. docker学习笔记(1)

    (1)Docker介绍 关于Docker的介绍,我就不列举出来了.到百度.谷歌搜索.非常多介绍文章.以下我给出官网的介绍:https://www.docker.com/whatisdocker/ (2 ...

  8. Newton‘ method 的优缺点

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzE1Mjg5NQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...

  9. Hadoop书籍下载链接

    Hadoop书籍推荐1:Hadoop实战(结合经典案例全面讲解hadoop整个技术体系)http://www.db2china.net/club/thread-25148-1-1.html2:Hado ...

  10. MVC5 学习资料

    http://www.cnblogs.com/HuiTai/category/591468.html