SDNU-1093.DNA排序

Description
逆序数可以用来是描述一个序列混乱成度的量。例如,“DAABEC”的逆序数为5,其中D大于它右边的4个数,E大于它右边的1个数,4+1=5;又例如“ZWQM”的逆序数为3+2+1+0=6。
现在有许多长度一样的字符串,每个字符串里面只会出现四种字母(A,T,G,C)。你现在被要求编写程序将这些字符串按照他们的逆序数进行排序
Input
第一行包括两个正整数,第一个正整数N给出了字符串的长度,第二个正整数M给出了字符串的数量。(1<=N,M<=100)
接下来M行每行一个长度为N的字符串,只包含A,T,G,C四种字母。
Output
将输入的字符串按照其逆序数进行排序,如果两个字符串的逆序数相等,则按照输入中两者的先后顺序进行排列。
Sample Input
10 6
AACATGAAGG
TTTTGGCCAA
TTTGGCCAAA
GATCAGATTT
CCCGGGGGGA
ATCGATGCAT
Sample Output
CCCGGGGGGA
AACATGAAGG
GATCAGATTT
ATCGATGCAT
TTTTGGCCAA
TTTGGCCAAA
Hint
选择排序是不稳定的


这题关键是hint:选择排序是不稳定的,(不稳定排序:大小相等的元素在被排序后前后位置关系可能改变)也就是说,不能简单的用sort来排序(不知道为什么stable_sort也不对),所以就在结构体排序上做文章使其满足output中的:如果两个字符串的逆序数相等,则按照输入中两者的先后顺序进行排列,所以我在结构体中int了一个出现顺序的量。ac代码如下(没有修改一些我尝试的细节):

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <string>
#include <cstdio>
using namespace std;
#define N 105struct node
{char s[N];long long f;int i;
};
bool cmp (node x,node y)
{if (x.f!=y.f)return x.f<y.f;elsereturn x.i<y.i;
}
int main()
{long long n,m;cin>>n>>m;node a[105];for (int i=0;i<m;i++){cin>>a[i].s;a[i].i=i;long long sum=0;for (int j=0;j<n-1;j++)for (int k=j+1;k<n;k++){if (a[i].s[j]>a[i].s[k])sum++;}a[i].f=sum;}sort(a,a+m,cmp);for (int i=0;i<m;i++)cout<<a[i].s<<endl;return 0;
}

若有问题请联系,我只是一个菜鸡。我会在你们的批评中变得优秀!

SDNU-1093.DNA排序相关推荐

  1. SDNU 1093.DNA排序(水题)

    Description 逆序数可以用来是描述一个序列混乱成度的量.例如,"DAABEC"的逆序数为5,其中D大于它右边的4个数,E大于它右边的1个数,4+1=5:又例如" ...

  2. 百练OJ:1007:DNA排序

    题目链接:1007:DNA排序 描述 现在有一些长度相等的DNA串(只由ACGT四个字母组成),请将它们按照逆序对的数量多少排序. 逆序对指的是字符串A中的两个字符A[i].A[j],具有i < ...

  3. Python入门习题(63)——OpenJudge百练习题:DNA排序

    OpenJudge百练第1007号习题:DNA排序 题目描述 解题思路 参考答案 测试用例 小结 题目描述 来源 OpenJudge网站 – 百练习题集-第1007号习题 建议学编程的人士利用好这个网 ...

  4. DNA排序算法--图文

    DNA排序算法,简单来说就是通过DNA工作原理实现排序功能的算法.本篇文章从整合排序算法的角度切入这个算法. 首先,收集现有的经典排序算法,它们分别有:冒泡排序.选择排序.插入排序.希尔排序.归并排序 ...

  5. 1007:DNA排序

    1007:DNA排序 查看 提交 统计 提示 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 现在有一些长度相等的DNA串(只由ACGT四个字母组成),请将它们按照逆序对的数量多少 ...

  6. POJ 1007 DNA排序解题

    题目链接 http://poj.org/problem?id=1007 C++代码实现 #include<string> #include<iostream> using na ...

  7. 【题解】(排序) —— POJ 0803:DNA排序

    总时间限制: 1000ms 内存限制: 65536kB 描述 现在有一些长度相等的DNA串(只由ACGT四个字母组成),请将它们按照逆序对的数量多少排序. 逆序对指的是字符串A中的两个字符A[i].A ...

  8. DNA排序算法--代码

    并行运算版 package dna;import java.util.concurrent.ForkJoinPool; import java.util.concurrent.RecursiveAct ...

  9. POJ1007:DNA排序

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

最新文章

  1. Servlet第六篇【Session介绍、API、生命周期、应用、与Cookie区别】
  2. 运用UE和Blocks,仅用两周打造一个VR游戏(52VR完整版译文)
  3. MYSQL:约束?添加约束?删除约束?以及一些其他修饰?
  4. 11--MySQL数据查询应用(实战)(二)
  5. python123编写函数求和_Python基础之函数
  6. wxWidgets:wxSimpleHtmlListBox类用法
  7. 如何让 dotnetcore 在 Linux 上后台运行?
  8. python代理charles_Mitmproxy + Python 做拦截代理
  9. Zookeeper入门总结
  10. audino python_用 Python 实现 PowerDesigner 数据模型文件的处理
  11. delete语句与reference约束冲突怎么解决_一条简单的更新语句,MySQL是如何加锁的?...
  12. 中国老工业基地吉林对外贸易重回历史高水平
  13. docker容器运行jar
  14. python绘制emoji_使用Emoji表情拼成汉字
  15. SVN clean up报错
  16. 记录navicat客户端对个别字段类型设置长度保存后变为0的原因
  17. win11 任务栏显示所有图标 不需要任何插件 (win11 22h2 版本已失效)
  18. 色彩搭配的原理与避讳
  19. 基于微信小程序游泳馆管理系统(微信小程序毕业设计)
  20. (AI)路径合成—路径查找器

热门文章

  1. 连接mysql的url是什么意思_URL是什么意思?
  2. 安鸾渗透实战平台综合渗透——SQL注入进阶渗透流程
  3. python定义匿名函数关键字_Python匿名函数
  4. SWFObject 设置透明 Flash
  5. printf彩色字体颜色打印输出
  6. GLES2.0中文API-glCopyTexImage2D
  7. Mysql数据库提权——UDF提权
  8. 偏态分布的均值与中位数关系
  9. 银监会计算机专业考试,)(2015国家公务员考试银监会计算机专业考试分析
  10. matlab插值与拟合(命令与示例),matlab插值与拟合(命令与示例)