`
128kj
  • 浏览: 600528 次
  • 来自: ...
社区版块
存档分类
最新评论
文章列表
1. 填空题 ⑴ 设无向图G中顶点数为n,则图G至少有( )条边,至多有( )条边;若G为有向图,则至少有( )条边,至多有()条边。 【解答】0,n(n-1)/2,0,n(n-1) 【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数 ...
一、选择题 1、以下序列不是堆的是   D     。      A、(100,85,98,77,80,60,82,40,20,10,66)      B、(100,98,85,82,80,77,66,60,40,20,10)     C、(10,20,40,60,66,77,80,82,85,98,100)     D、 ...
题目大意:   输入N和M,N就是N次测试,M是说每次测试产生的数据个数,数据范围在1-10000之间。现要求统计输出N次测试中数据出现次数第二多的所有数。当输入0,0时结束。 样例: 4 5 20 33 25 32 99 32 86 99 25 10 20 99 10 33 86 19 33 74 99 32 3 6 2 34 67 36 79 93 100 38 21 76 91 85 32 23 85 31 88 1 0 0 Sample Output 32 33 1 2 21 23 31 32 34 36 38 67 76 79 88 91 93 100 分析:先统计,然后排序(用 ...
关于直接插入排序请参看:http://128kj.iteye.com/blog/1662280 POJ2388题意:   【输入】第一行为n,接下来n行分别为一个数;   【输出】这n个数排序后的中位数 样例: Sample Input 5 2 4 1 3 5 Sample Output 3 分析:好象用多种排序法都可以AC,前面用了堆排序,这里再用直接插入排序,主要是复习一下代码。比起堆排序,代码短多了。 排一次序后输出中位数,但效率太低了。这里先不管了。 import java.util.Scanner; public class Main { ...
关于堆排序请参看:http://128kj.iteye.com/blog/1679094 POJ2388题意:   【输入】第一行为n,接下来n行分别为一个数;   【输出】这n个数排序后的中位数 样例: Sample Input 5 2 4 1 3 5 Sample Output 3 分析:好象用多种排序法都可以AC,这里先用堆排序,主要是复习一下堆排序代码。 排一次序后输出中位数,但效率太低了。这里先不管了。 import java.util.Scanner; public class Main { public static void main(Str ...
POJ1442题意:    ADD(a)表示向集合中增加元素a,get表示取出第k小元素,k根据get出现的次数不断变化,出现多少次取第几小数。 样例: Sample Input 7 4 3 1 -4 2 8 -1000 2 1 2 6 6 Sample Output 3 3 1 2 解释: 输入 n = 7 m =4,然后第一行输入n个数,然后另一行输入m个数 index = 1 1:输出n个数中前1个数中的第Index(1)小值 index=2 2:输出n个数中前2个数中的第index(2)小值 index=3 6:输出n个数中前6个数中的第index(3)小值 in ...
POJ2010题意:     奶牛学校招生,c头奶牛报名,要选n头(n为奇数),学校是义务制,所以每头奶牛的学费都由学校负责。每头奶牛都由自己的考试分数和它需要花的学费,学校总共有f的资金,问合法招生方案中中间分数(即排名第(n+1)/2)最高的是多少。 题解:先将所有的奶牛按照分数由低到高排序,假设k是招的奶牛中排名中间的那头,按照排序可知,[1,k-1]中的奶牛必定被招了(n-1)/2头,[k+1,c]中也必定被招了(n-1)/2头,而且无论招的是谁,分数是怎么样,最后影响结果的都只是k的分数。于是,可以预处理low[i]代表[1,i]头牛中选出(n-1)/2头牛的最小花费,high[i] ...
需要的请下载.
   一种形象的理解是:我们用一根麻绳绑住一个外面的钉子(点), 然后拉着麻绳绕所有钉子一圈,这个麻绳最后也构成了点集的凸包。 这就是卷包裹法(Gift Wrapping)的思路    卷包裹算法从一个必然在凸包上的点开始向着一 ...
    初中的数学书上说,当数据的个数是奇数时,中位数只有一个,当数据的个数为偶数时,中位数有两个:左中位数和右中位数。这个题根据题意,应该是求左中位数。 方法一:时间复杂度O(n/2), 空间复杂度O(1)    用两个变量跟 ...
POJ1696题意:   一只很特殊的蚂蚁,只能向坐转,并且不能经过已经走过的路。一张地图上有n个食物让蚂蚁去采集,求蚂蚁经过所有食物的顺序(找出一条最长的非右拐的路径)。 样例: Sample Input 2  (二次测试) 10  (十个 ...
一、第一种方法,都想得到的。 static int[] LeftShift1(int[] arr,int K){//K为循环左移位数 int N=arr.length; int[] new_arr=new int[N]; //新开一个数组,空间复杂度O(n) for(int i = 0; i <N; i++) new_arr[i] = arr[(K+i)%N ]; return new_arr; } 二、利用“翻转”完成优化,《编程之美》上的算法   考虑一下数组A中元素1234567循环左移2位到底是 ...
  网上的一个HashMap代码,用三个数组实现,不同于jdk中的实现方式。处理哈希冲突是采用二次哈希(再哈希)的策略,学习了一把,个别地方可能没有理解到位。写了一些注释,如果有错误,敬请指出。 public final class LongHashMap { protected long table[];//存放键,类型为long,应该是用于特殊场所 protected Object values[];//存放值 protected byte state[];//state[i]=0,1,2表示table[i]与values[i]没有使用,已 ...
/** * @author luochengcheng * 定义一个单链表 */ class Node { //变量 private int record; //指向下一个对象 private Node nextNode; public Node(int record) { super(); this.record = record; } public int getRecord() { ...
分治化求凸包,请参看:http://128kj.iteye.com/admin/blogs/1748622 POJ 2187题意:    给出一个点集,求两点之间最长的距离的平方,最长距离的两个点一定在凸包上, 首先,将点集凸包化,这样就可以排除了很多点,接下来就是两个for就可以. 下面是AC过代码: import java.util.*; class Line {//线 Point p1, p2; Line(Point p1, Point p2) { this.p1 = p1; this.p2 = p2; ...
Global site tag (gtag.js) - Google Analytics