- 浏览: 600528 次
- 来自: ...
最新评论
-
lgh1992314:
相同的元素呢
一种离散化方法 -
HelloSummerR:
圆心的位置是随机的,于是圆的部分会落到canvas外,那样就显 ...
HTML5 Canvas学习笔记(1)处理鼠标事件 -
hlstudio:
好久没见到sokuban了,这有个java版的,带源码,可以参 ...
求推箱子的最小步数(java) -
肖泽文:
太好了,谢谢你。。有中文注释!
HTML5 推箱子游戏过关演示动画 -
swm8023:
删除操作,将最后一个叶子节点插入后也有可能上浮吧
彻底弄懂最大堆的四种操作(图解+程序)(JAVA)
文章列表
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; ...