`
Element&lina
  • 浏览: 10321 次
  • 性别: Icon_minigender_1
  • 来自: 目前杭州
社区版块
存档分类
最新评论

PKU1007 字符串逆序数

    博客分类:
  • acm
 
阅读更多
0/1的危害啊,joel on software中提到过,果然如此,写的乱七八糟的。
public class Measure {

	private char[] sequence;
	private int measure;

	public Measure() {
		this("");
	}

	public Measure(String seqString) {
		this.sequence = seqString.toCharArray();
		this.measure = 0;
	}

	public int calculate() {
		this.mergeSort(0, this.sequence.length - 1);
		return this.measure;
	}

	private void mergeSort(int begin, int end) {
		int middle = (begin + end) / 2;
		if (begin < end) {
			this.mergeSort(begin, middle);
			this.mergeSort(middle + 1, end);
			this.merge(begin, middle, end);
		}
	}

	private void merge(int begin, int middle, int end) {
		int from = begin;
		int to = end;
		int temoMiddle = middle;
		char[] tempSeq = new char[end + 1];
		int position = 0;
		while (begin <= temoMiddle && middle + 1 <= end){
			if (this.sequence[begin] < this.sequence[middle + 1]) {
				tempSeq[position] = this.sequence[begin++];
			} else {
				this.measure += (temoMiddle + 1) - begin;
				tempSeq[position] = this.sequence[middle + 1];
				middle++;
			}
			position++;
		}
		
		while (begin <= temoMiddle) {
			tempSeq[position++] = this.sequence[begin++];
		}
		
		while (middle < end) {
			tempSeq[position++] = this.sequence[middle + 1];
			middle++;
		}
		System.arraycopy(tempSeq, 0, this.sequence, from, to - from + 1);
		System.out.println("measure:" + measure);
		System.out.println("seq " + new String(this.sequence));
	}

	public int getMeasure() {
		return measure;
	}

	public void setMeasure(int measure) {
		this.measure = measure;
	}

	public String getSequence() {
		return new String(sequence);
	}

	public void setSequence(String sequence) {
		this.sequence = sequence.toCharArray();
	}
}
分享到:
评论

相关推荐

    pku acm 1007 DNA Sorting代码

    pku acm 1007 DNA Sorting代码 逆序数 排序 解题报告请访问:http://blog.csdn.net/china8848

    ACM字符串题目及源代码[参照].pdf

    - PKU3693和SPOJ687题目都是关于找出重复次数最多的连续重复子串,这可能需要遍历整个字符串,维护当前子串及其出现次数的状态。 7. **长度不小于k的公共子串的个数**: - PKU3415要求计算所有长度不小于k的公共...

    acm常用字符串处理函数[借鉴].pdf

    在ACM竞赛编程中,字符串处理函数扮演着重要的角色,因为很多问题涉及到字符串的搜索、匹配和操作。这里我们主要讨论两个常用的字符串处理函数:`strstr()` 和 `strchr()`,以及KMP算法在字符串匹配中的应用。 1. *...

    PKU1639解题报告

    1. **字符串处理**:将所有的输入字符串连接在一起,并在每个字符串结尾添加一个特殊的字符,确保这些特殊字符互不相同且不在原始字符串中出现。这样做的目的是为了方便后续的处理,避免不同字符串之间的相互影响。 ...

    pku hdu zoj题目分类

    "poj pku字符串题目推荐及解题报告.doc"专注于字符串处理,这是编程竞赛中常见的一类问题,包括模式匹配、KMP算法、Manacher's Algorithm等。 7. **ACM应掌握的知识点**: "ACM应掌握的知识点.doc"可能是对参加...

    ACM算法模板和pku代码

    归并排序求逆序数 Pell方程 Catalan数,100以内 欧拉函数讲解 组合计数 组合数计算(double) 组合数计算(高精度) r-组合生成算法 r-排列生成算法 r-错位排列生成算法 图论 传递闭包 欧拉回路判定 有向图...

    pku.zip_PKU

    【标题】"pku.zip_PKU" 指的是一份与北京大学(Peking University, PKU)相关的压缩文件。从描述来看,这份压缩包包含了部分编程题目的代码,可能是学生或者爱好者在解决北京大学编程竞赛或课程作业时编写的。"pku"这...

    pku acm 2299 Ultra-QuickSort代码

    pku acm 2299 Ultra-QuickSort代码,合并排序求逆序数,解题报告请访问:http://blog.csdn.net/china8848

    PKU 图论 DP 解题报告

    - **题目大意**:给定N个数(N ≤ 50000),要求找出5个数的组合,这些数彼此之间不存在逆序关系的数量。 - **算法讨论**:考虑到数据范围较大,首先需要对输入的数值进行离散化处理,将其映射到较小的整数集合中。...

    pku acm 一些代码

    3. **字符串处理**:在ACM中,字符串问题很常见,可能涉及到模式匹配、KMP算法、Manacher's Algorithm等。 4. **数学知识**:可能涉及到数论(如质数判断、最大公约数和最小公倍数)、组合数学(排列组合、递推关系...

    pku_ACM.rar_PKU_PKU_ACM

    1. **1007.cpp**:此题可能涉及到字符串处理和动态规划。字符串处理通常包括查找、替换、排序等操作,而动态规划则是一种解决最优化问题的有效方法,通过构建状态转移方程,将原问题分解为子问题,逐步求解。 2. **...

    acm_pku_code.zip_Code p_acm pku_acm pku pu_acm.pku_pku acm

    5. 字符串处理:模式匹配(KMP、Boyer-Moore等)、字符串操作(如反转、子串查找等)。 6. 计算几何:线段树、区间树、旋转裁剪、碰撞检测等。 7. 编程基础:递归、指针、文件操作、IO流、多线程等。 通过这个...

    ACM代码 之pku代码

    7. **字符串处理**:KMP算法、Manacher's Algorithm、Z-Algorithm等。 8. **模拟与建模**:根据题目描述模拟现实情况,或构建数学模型进行求解。 9. **编码技巧**:包括位运算、宏定义、模板、递归、内存管理等,...

    pku经典题目解题报告

    "pku经典题目解题报告"这一标题揭示了文件内容的核心,它表明这是一份关于北京大学(PKU)编程竞赛或算法竞赛中的经典问题的解答集。通常,这样的报告会涵盖一系列在PKU历年比赛中出现的难题,包含了解题思路、算法...

    很详细的PKU题目分类

    字符串处理是编程中经常遇到的问题,这部分题目涵盖了模式匹配、哈希算法等内容。 - **示例题目编号**:1001, 1220, 1405, 1503, 1002, 1318, 1877, 1928, 1971, 1974, 1990, 2001, 2002, 2092, 2379, 2388, 2418。...

    pku1000程序 解题报告

    pku1000 pku1000程序 解题报告

    PKU-ACM.rar_PKU_acm 题目

    在编程竞赛的世界里,北京大学(PKU)的ACM团队以其高质量的题目和独特的解题思路闻名。"PKU-ACM.rar"这个压缩包包含了北大ACM题目的一些核心知识点,旨在帮助参赛者理解和掌握算法竞赛中的生命周期题目解法。本文将...

    Pku的oj题目分类.

    - **字符串处理**:对字符串进行操作,如匹配、替换等。 通过以上分类,我们可以了解到不同类型的算法及其应用范围。对于初学者而言,可以从简单的题目入手,逐渐提高难度,最终掌握各种算法的核心思想和技术细节。...

    2011-2020年北京大学数字普惠金融指数(PKU-DFIIC)

    2011-2020年北京大学数字普惠金融指数(PKU-DFIIC)

Global site tag (gtag.js) - Google Analytics