`
ysshuai19
  • 浏览: 15550 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

POJ 1007 解题报告 DNA Sorting

    博客分类:
  • POJ
阅读更多

 

#include <iostream>
#include <string>
#include <map>

using namespace std;

class DNA{
public:
	string strDNA;
	DNA(string);
};

DNA::DNA(string s)
{
	strDNA = s;
}

int calculateInversionsNum(const string&);
bool operator<(const DNA&, const DNA&);

int main ()
{
	string str;

	int iNum;
	int iLength;

	cin >> iLength >> iNum;

	map<DNA, int> mDna;

	while (iNum--)
	{
		cin >> str;
		DNA d = DNA(str);
		++mDna[d];
	}

	map<DNA, int>::iterator iterI = mDna.begin();
	while(iterI != mDna.end())
	{
		while (iterI->second --)
		{
			cout << iterI->first.strDNA << endl;
		}
		iterI ++;
	}

	return 0;
}

bool operator<(const DNA& dL, const DNA& dR)
{
	if(calculateInversionsNum(dL.strDNA) < calculateInversionsNum(dR.strDNA))
	{
		return true;
	}
	else
	{
		return false;
	}
}

int calculateInversionsNum(const string& str)
{
	int i = 0;
	int iInversionsNum = 0;
	while (i < str.size() - 1)
	{
		int iCountRepeat = 1;
		while (str[i] == str[i + 1])
		{
			iCountRepeat ++;
			i++;
			if (i == str.size() - 1)
			{
				return iInversionsNum;
			}
		}

		int j = i;
		int iAdd = 0;
		while (j < str.size())
		{
			if (str[i] > str[j])
			{
				iAdd ++;
			}
			j ++;
		}
		iInversionsNum += iCountRepeat * iAdd;
		i ++;
	}
	return iInversionsNum;
}

分享到:
评论

相关推荐

    POJ1007-DNA Sorting

    - "POJ1007-DNA Sorting.doc"可能是解题报告的文档,详细介绍了解题过程、思路和代码解释,对于深入理解题目和算法有极大的帮助。 总结来说,"POJ1007-DNA Sorting"是一个涉及生物信息学和算法设计的编程挑战,通过...

    POJ分类题(按照算法分类)

    8. 1007DNASorting:该问题可能需要使用算法对DNA序列进行排序。 9. 1032Parliament:该题目可能是模拟议会投票或分配问题。 10. 1045BodePlot:这可能是与信号处理相关的题目,需要根据Bode图进行分析。 11. ...

    DNA进化算法及其改进研究样本.doc

    DNA进化算法及其改进研究样本.doc

    基于Matlab的水果识别程序:融合图像处理与深度学习技术

    内容概要:本文详细介绍了使用Matlab编写的水果识别程序。首先简述了人工智能和机器学习在水果识别领域的应用背景,强调了Matlab作为强大编程环境的优势。接着,文章逐步讲解了水果识别程序的具体实现流程,涵盖数据预处理、特征提取、模型训练以及最终的识别算法实现。每个环节都采用了先进的技术和方法,如图像去噪、大小调整、深度学习算法(特别是卷积神经网络CNN),并通过训练神经网络模型来提升识别精度。此外,还讨论了相关技术手段和技术挑战,展示了Matlab在图像处理和计算机视觉方面的强大能力。 适合人群:对图像处理、机器学习感兴趣的科研人员、学生及工程师。 使用场景及目标:适用于希望深入了解Matlab环境下水果识别程序的设计与实现的研究者;旨在帮助使用者掌握从数据准备到模型部署的一系列技能,为实际项目提供理论支持和技术指导。 其他说明:文中不仅提供了详细的程序实现步骤,还对未来发展方向进行了展望,鼓励更多人参与到水果识别及相关领域的研究中。

    scratch少儿编程逻辑思维游戏源码-修复塔.zip

    scratch少儿编程逻辑思维游戏源码-修复塔.zip

    spring-boot-2.5.13.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    scratch少儿编程逻辑思维游戏源码-天空之球.zip

    scratch少儿编程逻辑思维游戏源码-天空之球.zip

    spring-boot-1.0.2.RELEASE.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    scratch少儿编程逻辑思维游戏源码-土豆兄弟.zip

    scratch少儿编程逻辑思维游戏源码-土豆兄弟.zip

    scratch少儿编程逻辑思维游戏源码-小鸟冒险.zip

    scratch少儿编程逻辑思维游戏源码-小鸟冒险.zip

    scratch少儿编程逻辑思维游戏源码-跳进火山.zip

    scratch少儿编程逻辑思维游戏源码-跳进火山.zip

    scratch少儿编程逻辑思维游戏源码-跳跃引擎.zip

    scratch少儿编程逻辑思维游戏源码-跳跃引擎.zip

    scratch少儿编程逻辑思维游戏源码-旋转(4).zip

    scratch少儿编程逻辑思维游戏源码-旋转(4).zip

    scratch少儿编程逻辑思维游戏源码-死里逃生.zip

    scratch少儿编程逻辑思维游戏源码-死里逃生.zip

    spring-boot-1.3.5.RELEASE.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    spring-boot-2.6.10.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    HPERP商业软件实施解决方案模板.doc

    HPERP商业软件实施解决方案模板.doc

    spring-boot-2.2.3.RELEASE.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    Drogon是一个基于C++17/20的Http应用框架,使用Drogon可以方便的使用C++构建各种类型的Web应用服务端程序

    Drogon是一个基于C++17/20的Http应用框架,使用Drogon可以方便的使用C++构建各种类型的Web应用服务端程序。

    private-data-20260427.7z.pd

    私有数据

Global site tag (gtag.js) - Google Analytics