2013年3月9日

1-5 最大间隙问题

摘要: 问题描述:最大间隙问题:给定n 个实数x1 , x2 , , xn,求这n 个数在实轴上相邻2 个数之间的最大差值。假设对任何实数的下取整函数耗时O(1),设计解最大间隙问题的线性时间算法。编程任务:对于给定的n 个实数 x1 , x2, ……, xn,编程计算它们的最大间隙。数据样例:输入数据:52.3 3.1 7.5 1.5 6.3输出数据:3.2解题思路:1,比较直接的方法是先对n个数进行排序,最快时间为nlogn,然后遍历数据顺便计算每两个数据之间的间隔该方法不是线性时间2,想要用线性时间解决该问题可以使用组合数学中学到的鸽巢原理,将n个数放入n-1个桶中,每个桶大小相同为(max-m 阅读全文

posted @ 2013-03-09 22:01 愤怒的屎壳螂 阅读(983) 评论(0) 推荐(0) 编辑

1-4 金币阵列问题

摘要: 问题描述:有m´ n(m<= 100,n<= 100)个金币在桌面上排成一个m行n 列的金币阵列。每一枚金币或正面朝上或背面朝上。用数字表示金币状态,0表示金币正面朝上,1 表示背面朝上。金币阵列游戏的规则是:(1)每次可将任一行金币翻过来放在原来的位置上;(2)每次可任选2 列,交换这2 列金币的位置。算法设计:给定金币阵列的初始状态和目标状态,计算按金币游戏规则,将金币阵列从初始状态变换到目标状态所需的最少变换次数。数据输入:文件中有多组数据。文件的第1行有1 个正整数k,表示有k 组数据。每组数据的第1 行有2 个正整数m 和n。以下的m行是金币阵列的初始状态,每行 阅读全文

posted @ 2013-03-09 20:54 愤怒的屎壳螂 阅读(248) 评论(0) 推荐(0) 编辑

1-3 最多约数问题

摘要: 问题描述:正整数x的约数是能整除x的正整数。正整数x 的约数个数记为div(x)。例如,1,2,5,10 都是正整数10 的约数,且div(10)=4。设a 和b 是2 个正整数,a≤b,找出a和b之间约数个数最多的数x。问题简化:对于给定的2个正整数a≤b,编程计算a 和 b 之间约数个数最多的数。思想:设正整数x的质因子分解为x=p1^N1 × p2^N2 ×……pi^Ni则 div(x)=(N1+1)(N2+1)……(Ni+1)源代码如下:#include <stdio.h>#define MAXP 10240#define true 1#define f 阅读全文

posted @ 2013-03-09 14:34 愤怒的屎壳螂 阅读(344) 评论(0) 推荐(0) 编辑

导航