摘要: 1.普通工厂模式package CommonFactory;public class Test { public static void main(String[] args) { VehicleFactory factory = new CarFactory(); ... 阅读全文
posted @ 2014-04-27 17:31 Shanks-香克斯 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 1.单例设计模式1.1不考虑多线程public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { ... 阅读全文
posted @ 2014-04-26 23:10 Shanks-香克斯 阅读(518) 评论(0) 推荐(0) 编辑
摘要: Shuffle过程包含在Map和Reduce两端中,是MapReduce的核心所在。一、Map端在Map端,Shuffle过程是对Map的结果进行划分(partition)、溢写(spill),然后将属于统一个划分的输出合并(merge)在一起。其主要流程如下图所示:整个流程分为四步。每个Map T... 阅读全文
posted @ 2014-04-23 23:28 Shanks-香克斯 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 1.InputFormat数据→InputSplit→RecordReader→→Map |← InputFormat →|InputFormat是一个interface,用户在启动MapReduce的时候需要指定一个InputFormat的implement。InputFormat只包含了... 阅读全文
posted @ 2014-04-23 16:01 Shanks-香克斯 阅读(280) 评论(0) 推荐(0) 编辑
摘要: Nowadays all circuses in Berland have a round arena with diameter 13 meters, but in the past things were different.In Ancient Berland arenas in circuses were shaped as a regular (equiangular) polygon, the size and the number of angles could vary from one circus to another. In each corner of the aren 阅读全文
posted @ 2014-04-12 11:55 Shanks-香克斯 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数,这是一个递归过程。辗转相除法更像辗转相减法,因为辗转一次可能要减好几次,就变成了除法(取余操作)。执行过程假设要求自然数a、b的最大公约数,商依次为q0, q1, ..., qn, 余数依次为r1, r2, ..., rn,则执行过程如下:a = q0* b + r0;b = q1* r0+ r1;r0= q2* r1+ r2;r1= q3 * r2+ r3;...rn-3= qn-1* rn-2+ rn-1;rn-2= qn* rn-1+ rn;如果rn= 0; 则rn-1即为a、b的最大公约数。证明辗转相除 阅读全文
posted @ 2014-04-12 11:41 Shanks-香克斯 阅读(1346) 评论(0) 推荐(0) 编辑
摘要: 时间限制:4000ms单点时限:2000ms内存限制:256MB描述有一棵树,树上有只毛毛虫。它在这棵树上生活了很久,对它的构造了如指掌。所以它在树上从来都是走最短路,不会绕路。它还还特别喜欢三角形,所以当它在树上爬来爬去的时候总会在想,如果把刚才爬过的那几根树枝/树干锯下来,能不能从中选三根出来拼成一个三角形呢?输入输入数据的第一行包含一个整数 T,表示数据组数。接下来有 T 组数据,每组数据中:第一行包含一个整数 N,表示树上节点的个数(从 1 到 N 标号)。接下来的 N-1 行包含三个整数 a, b, len,表示有一根长度为 len 的树枝/树干在节点 a 和节点 b 之间。接下来一 阅读全文
posted @ 2014-04-08 11:40 Shanks-香克斯 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 时间限制:2000ms单点时限:1000ms内存限制:256MB描述在 N 条水平线与 M 条竖直线构成的网格中,放 K 枚石子,每个石子都只能放在网格的交叉点上。问在最优的摆放方式下,最多能找到多少四边平行于坐标轴的长方形,它的四个角上都恰好放着一枚石子。输入输入文件包含多组测试数据。第一行,给出一个整数T,为数据组数。接下来依次给出每组测试数据。每组数据为三个用空格隔开的整数 N,M,K。1 ≤ T ≤ 1000 ≤ K ≤ N * M小数据:0 #includeusing namespace std;void swap(int& a, int& b) { int t = 阅读全文
posted @ 2014-04-08 10:50 Shanks-香克斯 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 时间限制:2000ms单点时限:200ms内存限制:256MB描述Given N arithmetic expressions, can you tell whose result is closest to 9?输入Line 1: N (1 #include #include using namespace std;int main(){int N; cin >> N; int index = 1; double res = DBL_MAX; double ans; for(int i = 1 ; i > a >> op >> b; switch.. 阅读全文
posted @ 2014-04-07 17:36 Shanks-香克斯 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 时间限制:2000ms单点时限:1000ms内存限制:256MB描述Alice和Bob还有其他几位好朋友在一起玩传话游戏。这个游戏是这样进行的:首先,所有游戏者按顺序站成一排,Alice站第一位,Bob站最后一位。然后,Alice想一句话悄悄告诉第二位游戏者,第二位游戏者又悄悄地告诉第三位,第三位又告诉第四位……以此类推,直到倒数第二位告诉Bob。两位游戏者在传话中,不能让其他人听到,也不能使用肢体动作来解释。最后,Bob把他所听到的话告诉大家,Alice也把她原本所想的话告诉大家。由于传话过程中可能出现一些偏差,游戏者越多,Bob最后听到的话就与Alice所想的越不同。Bob听到的话往往会变 阅读全文
posted @ 2014-04-07 17:30 Shanks-香克斯 阅读(1480) 评论(0) 推荐(0) 编辑