PKU 1007
题名:DNA排序
题意:给定字符串长度、个数,计算每个字符串的逆序数,然后从大到小排列,有兴趣的可以去看下原题。
计算字符串逆序数,然后排序,这里使用了快速排序算法,string释放的时候竟然有问题,直接字符数组吧。
// 1007.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <iostream>
#include <algorithm>
using namespace std;
class data
{
public:
char s[];
int c;
};
int partion(data a[],int p,int r){
int x = a[r].c; //通常,拿最后一个值,作为预期的中间值
int middle = p; //记录“较小的一段数据”的最大下标。通常这个值在p和r的中间,故起名middle
data *temp=new data;
for (int j = p ; j < r ; j++){
if (a[j].c < x){ memcpy(temp,&a[middle],sizeof(data));
//int temp = a[middle].c;
memcpy(&a[middle],&a[j],sizeof(data));
//a[middle] = a[j];
memcpy(&a[j],temp,sizeof(data));
//a[j] = temp;
middle++;
}
}
//int temp = a[r];
memcpy(temp,&a[r],sizeof(data));
//a[r] = a[middle];
memcpy(&a[r],&a[middle],sizeof(data));
//a[middle] = temp;
memcpy(&a[middle],temp,sizeof(data));
delete temp;
return middle;
} void QuickSort(data a[],int p,int r){
if (p<r){
int q=partion(a,p,r);
QuickSort(a,p,q-);
QuickSort(a,q+,r);
}
} int main(int argc, char* argv[])
{
int slen=,snum=;
cin>>slen>>snum;
int count=;
char temp[]={}; data *d1=new data[snum];
while (count<snum)
{
cin>>temp;
strcpy(d1[count].s,temp);
int bigTimes=;
for (int i=;i<strlen(temp)-;i++)//计算大的次数
{
for (int j=i+;j<strlen(temp);j++)
{
if(temp[i]>temp[j])
bigTimes++; }
}
d1[count].c=bigTimes;
count++;
}
QuickSort(d1,,count-);
for (int i=;i<count;i++)
{
//strcpy(temp,d1[i].s.c_str());
cout<<d1[i].s<<endl;
}
delete []d1;
return ;
}
PKU 1007的更多相关文章
- HDU——PKU题目分类
HDU 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 ...
- SCNU 2015ACM新生赛初赛【1007. ZLM的扑克牌】解题报告
题目链接详见SCNU 2015新生网络赛 1007. ZLM的扑克牌 . 其实我在想这题的时候,还想过要不要设置求最小的排列,并且对于回文数字的话,可以把扑克牌折起来( ...
- PKu 2195
//PKu 2195 回家 By Loli_con Enail : Loli_con@outlook.com /* 题目叙述 ========= 在一个网格图中,有n个人和n个房子.每一个单位时间,每 ...
- sicily 1007. To and Fro 2016 11 02
// Problem#: 1007// Submission#: 4893204// The source code is licensed under Creative Commons Attrib ...
- 【HDU 1007】Quoit Design
http://acm.hdu.edu.cn/showproblem.php?pid=1007 最近欧式距离模板题. 用分治大法(分治的函数名用cdq纯属个人习惯_(:з」∠)_) 一开始狂M. 后来判 ...
- 最近点对问题 POJ 3714 Raid && HDOJ 1007 Quoit Design
题意:有n个点,问其中某一对点的距离最小是多少 分析:分治法解决问题:先按照x坐标排序,求解(left, mid)和(mid+1, right)范围的最小值,然后类似区间合并,分离mid左右的点也求最 ...
- poj 1007 DNA Sorting 解题报告
题目链接:http://poj.org/problem?id=1007 本题属于字符串排序问题.思路很简单,把每行的字符串和该行字符串统计出的字母逆序的总和看成一个结构体.最后把全部行按照这个总和从小 ...
- 【BZOJ】 1007: [HNOI2008]水平可见直线(凸壳)
http://www.lydsy.com/JudgeOnline/problem.php?id=1007 一开始我贪心的写了下,当然全wa了.. 这题看了题解感觉很简单. 首先什么情况才能看到呢? w ...
- HDU 1007 Quoit Design(二分+浮点数精度控制)
Quoit Design Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
随机推荐
- jquery 中 $.map 的使用方法
$.map(data,function(item,index){return XXX}) 遍历data数组中的每个元素,并按照return中的计算方式 形成一个新的元素,放入返回的数组中 ,,], f ...
- mysql 5.7配置文件参数详解
read_buffer_size 默认大小:128KB 最大:2GB 最小:8KB 增量:必须为4KB的整数倍,如果配置的不是整数倍,会向下取整 用途: 1.MyISAM表顺序扫描提供的缓存 2.所有 ...
- Shell父进程获取子进程的变量值
#!/bin/kshshit=""export shitshit=$(su - grid -c 'echo $ORACLE_BASE')pvar=$(subvar="he ...
- CSS属性选择符
属性选择符: E[att] 选择具有att属性的E元素. <style type="text/css"> a[class]{ background-color: red ...
- html、css基础注意点
之前第一次接触html,一直使用table进行布局,十分麻烦还相当丑陋,造成当初并没有多大的兴趣,直到半年前开始接触到了使用div+css编写页面,才对它有了兴趣.作为一个菜鸟记录自己的点滴教训与收获 ...
- mysql-5.6.17-win32的安装?
官方mysql最新版本:http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz 解压后,以管理员的身份打开cmd.exe,切入安装目录 ...
- 用java实现简易PC版2048
import java.awt.Color; import java.awt.EventQueue; import java.awt.BorderLayout; import java.awt.Flo ...
- thunkify和co的邂逅
上一篇说到thunkify的作用,这一篇说一下thunkify和co的集合 co中有一块代码 /** * Convert a thunk to a promise. * * @param {Funct ...
- Bootstrap<基础十六> 导航元素
Bootstrap 提供的用于定义导航元素的一些选项.它们使用相同的标记和基类 .nav.Bootstrap 也提供了一个用于共享标记和状态的帮助器类.改变修饰的 class,可以在不同的样式间进行切 ...
- Asp.net MVC路由机制
C:/Windows/Microsoft.NET/Framwork/v4.0.30319/config/web.config-> httpModules-> System.Web.Rout ...