描述

现在有一些长度相等的DNA串(只由ACGT四个字母组成),请将它们按照逆序对的数量多少排序。

逆序对指的是字符串A中的两个字符A[i]、A[j],具有i < j 且 A[i] > A[j] 的性质。如字符串”ATCG“中,T和C是一个逆序对,T和G是另一个逆序对,这个字符串的逆序对数为2。

输入

第1行:两个整数n和m,n(0<n<=50)表示字符串长度,m(0<m<=100)表示字符串数量

第2至m+1行:每行是一个长度为n的字符串

输出

按逆序对数从少到多输出字符串,逆序对数一样多的字符串按照输入的顺序输出。

样例输入

10 6
AACATGAAGG
TTTTGGCCAA
TTTGGCCAAA
GATCAGATTT
CCCGGGGGGA
ATCGATGCAT

样例输出

CCCGGGGGGA
AACATGAAGG
GATCAGATTT
ATCGATGCAT
TTTTGGCCAA
TTTGGCCAAA

解题思路:

# include<stdio.h>
# include<string.h>
# include<algorithm>
using namespace std;
struct E
{
char s[51];
int cnt;
bool operator < (const E &b) const
{
return cnt<b.cnt;
}
}dn[101]; int main()
{
int n,m;
int index=0,i,j,k;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(k=0;k<m;k++)
{
scanf("%s",dn[k].s);
int len=strlen(dn[k].s),cnt=0;
for(i=0;i<len;i++)
{
for(j=i+1;j<len;j++)
{
if(dn[k].s[i]>dn[k].s[j])
cnt++;
}
}
dn[k].cnt=cnt;
} sort(dn,dn+m); for(i=0;i<m;i++)
printf("%s\n",dn[i].s);
} return 0;
}

poj-DNA排序的更多相关文章

  1. DNA排序

    Q:DNA排序 总时间限制:1000ms内存限制:65536kB 描述 给出一系列基因序列,由A,C,G,T四种字符组成.对于每一个序列,定义其逆序对如下: 序列中任意一对字符X和Y,若Y在X的右边( ...

  2. Openjudge计算概论-DNA排序

    /*===================================== DNA排序 总时间限制: 1000ms 内存限制: 65536kB 描述 给出一系列基因序列,由A,C,G,T四种字符组 ...

  3. POJ题目排序的Java程序

    POJ 排序的思想就是根据选取范围的题目的totalSubmittedNumber和totalAcceptedNumber计算一个avgAcceptRate. 每一道题都有一个value,value ...

  4. POJ 2388(排序)

    http://poj.org/problem?id=2388 题意:就N个数的中位数. 思路:用快排就行了.但我没用快排,我自己写了一个堆来做这个题.主要还是因为堆不怎么会,这个拿来练练手. #inc ...

  5. Openjudge-计算概论(A)-DNA排序

    描述: 给出一系列基因序列,由A,C,G,T四种字符组成.对于每一个序列,定义其逆序对如下: 序列中任意一对字符X和Y,若Y在X的右边(不一定相邻)且Y < X,则称X和Y为一个逆序对. 例如G ...

  6. POJ 1833 排序

    http://poj.org/problem?id=1833 题意: 给出一个排序,求出它之后的第k个排序. 思路: 排序原理: 1.如果全部为逆序时,说明已经全部排完了,此时回到1~n的排序. 2. ...

  7. POJ 1883 排序 ( 水 + next_permutation )

    链接:传送门 题意:略 思路:next_permutation(),水,但是要注意一点的是如果是最后一个排列next_permutation会返回第一个排列并结束,所以如果到了最后一个排列还不是第k个 ...

  8. POJ 3168 排序+扫描

    题意: 思路: 我们可以把每个矩形拆成四条线 与x轴平行的放在一起 与y轴平行的放在一起 排个序 判一判有没有交 有交 则说明不可扩张 统计一下 就可以了 处理的姿势很重要 姿势不对毁一生 //By ...

  9. 百炼OJ - 1007 - DNA排序

    题目链接:http://bailian.openjudge.cn/practice/1007 #include<stdio.h> #include<algorithm> usi ...

  10. [POJ 1007] DNA Sorting C++解题

        DNA Sorting Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 77786   Accepted: 31201 ...

随机推荐

  1. CPU的功能和基本组成结构

    目录 CPU的功能 运算器和控制器的功能 CPU的基本结构 运算器的基本结构 控制器的基本结构 整体 本节回顾 CPU的功能 指令控制:完成取指令.分析指令和执行指令的操作,即程序的顺序控制 操作控制 ...

  2. 一个实现浏览器网页与本地程序之间进行双向调用的轻量级、强兼容、可扩展的插件开发平台—PluginOK中间件

    通过PluginOK中间件插件平台(原名本网通WebRunLocal)可实现在网页中的JavaScript脚本无障碍访问本地电脑的硬件.调用本地系统的API及相关组件,同时可彻底解决ActiveX组件 ...

  3. 跨站点脚本编制 - SpringBoot配置XSS过滤器(基于Jsoup)

    1. 跨站点脚本编制   风险:可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务.   原因:未对用户输入正确执行危险字符清 ...

  4. react第十一单元(受控组件和非受控组件-实现类似于vue双向绑定的功能)

    第十一单元(受控组件和非受控组件-实现类似于vue双向绑定的功能) #课程目标 理解因为react的单向数据流 理解表单组件会因为react数据流变的不好维护 理解受控组件与非受控组件的实质区别 理解 ...

  5. Feign String 参数 传递null 以及 空字符串问题

    笔记链接:https://app.yinxiang.com/fx/c82f6d74-3432-4703-83c8-5175f5986f97 备注 因为笔记在印象笔记上进行编辑,而且为Markdown格 ...

  6. 第 13 章 StringTable详解

    目录 第 13 章 StringTable 1.String 的基本特性 1.1.String 概述 1.2.String 的基本特征 1.3.String 的底层结构 2.String 的内存分配 ...

  7. 聊聊 HTTP 常见的请求方式

    在互联网已经渗透了生产.生活各个角落的今天,人们可以登录微信语音聊天,可以随手"扫"到各种功能的二维码,可以通过方便快捷的无人超市购物--这种互联网领域的跨越式发展,不仅满足了人们 ...

  8. 简单的冒泡排序算法(java)

    package lianxi; public class BubbleSort { public static void main(String[] args) { int[] array = {12 ...

  9. Java基础进阶:多态与接口重点摘要,类和接口,接口特点,接口详解,多态详解,多态中的成员访问特点,多态的好处和弊端,多态的转型,多态存在的问题,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    多态与接口重点摘要 接口特点: 接口用interface修饰 interface 接口名{} 类实现接口用implements表示 class 类名 implements接口名{} 接口不能实例化,可 ...

  10. python解压可迭代对象赋值给多个变量

    如果一个可迭代对象的元素个数超过了变量的个数,会出现"解压值太多"的异常,python提供*号表达式(码夫破石的理解)来解决. 1,求一组平均值,就以类似学生成绩为例,要求是去掉第 ...