摘要:
前言: 年前,在老大的号召下,我们纠集了一帮人搞起了hadoop,并为其取了个响亮的口号“云在手,跟我走”。大家几乎从零开始,中途不知遇到多少问题,但终于在回家之前搭起了一个拥有12台服务器的集群,并用命令行在该集群上运行了一些简单的mapreduce程序。想借此总结我们的工作过程。安装过程:一、安装Linux操作系统二、在Ubuntu下创建hadoop用户组和用户三、在Ubuntu下安装JDK四、修改机器名五、安装ssh服务六、建立ssh无密码登录本机七、安装hadoop八、在单机上运行hadoop一、安装Linux操作系统我们是在windows中安装linux系统的,选择的是ubuntu1 阅读全文
摘要:
由于珠宝的临界点必须放置守卫,一个守卫又有可能同时保护许多个珠宝,发现最后要求的便是二分图的最小点集覆盖,这个二分图是这样建的:对于每一个珠宝,如果其临界点没有守卫,那么就在珠宝和该临界点之间连一条边,这条边是必须被覆盖的,所以当整个二分图所有的边都连好后,所要做的就是求最小点集覆盖。 我看到网上很多人的做法有奇偶染色的,我这里写简单了一点,直接建成无向图,那么最终计算得到的为最小点集覆盖的2倍。View Code 1 #include <stdio.h> 2 #include <string.h> 3 #include <iostream> 4 #incl 阅读全文
摘要:
二分图判定 + 最大匹配。 二分图判断方法——染色法:首先取一个点染成白色,然后将其相邻的点染成黑色,如果发现相邻的点已经被染成白色,即出现冲突,那么为这些集合不能构成二分图;如果直到所有点都染色后都无冲突,那么可以构成二分图。View Code 1 #include <stdio.h> 2 #include <string.h> 3 #include <vector> 4 using namespace std; 5 6 const int maxn = 200+5; 7 int n, m; 8 bool g[maxn][maxn]; 9 bool vis 阅读全文
摘要:
这题与HDU1281类似,都是行列最大匹配。 这题说准确一点儿时求最小点集覆盖,枚举每种颜色,如果当前颜色的最小点集覆盖大于k,那么k次选择都不可能把该种颜色完全消灭。View Code 1 #include <stdio.h> 2 #include <string.h> 3 #include <vector> 4 using namespace std; 5 6 const int maxn = 100 + 5; 7 int n, k; 8 bool vis[maxn]; 9 int link[maxn];10 int g[maxn][maxn];11 1 阅读全文
摘要:
行和列构成二分图,对于某个位置[x, y],如果可以放“车”,那么行x和列y连一条有向线 x -> y (g[x][y] = 1),在进行二分图匹配的时候,如果该某位置的连线算入了最大匹配中,根据最大匹配的定义知该位置所在的行和列肯定被屏蔽掉(不会进入最大匹配中)。那么有: 能放的棋子数 L 即为最大匹配;而要计算某个点是否为重要点,只需要将该点连线去掉,计算最大匹配,如果此时计算得到的最大匹配小于原最大匹配,那么该点为重要点,这是我们枚举所有可放棋子点即可。View Code 1 #include <stdio.h> 2 #include <string.h> 阅读全文
摘要:
本题求最大独立集,那么用公式: 最大独立集 = 总结点数 - 最大匹配 对于这道题来说,发现给出的数据构造出的是一个无向图,那么直接匈牙利计算会重复,得出的是2倍的最大匹配。 所以最后结果得出的最大匹配值要除以2.View Code 1 #include <iostream> 2 #include <string.h> 3 #include <stdio.h> 4 using namespace std; 5 6 const int M = 500 + 2; 7 bool g[M][M], vis[M]; 8 int link[M], m, n, k; 9 阅读全文
摘要:
【HDU】1532 Drainage Ditches(基础) [最大流]3549 Flow Problem(基础) [最大流]3572 Task Schedule [最大流]任务分配,判断满流2732 Leapin' Lizards(难) [最大流]3338 Kakuro Extension [最大流][数和]神奇最大流行进列出2883 kebab [最大流]判断满流3605 Escape [最大流](多重匹配)4183 Pahom on Water [最大流]来回走不重复点的网络流.4240 Route Redundancy [最大流]一条流最大的路径3081 Marriage Ma 阅读全文
摘要:
【HDU】2255 奔小康赚大钱模板题★1533 Going Home模板题★2426 Interesting Housing ProblemKM★3395 Special FishKM★2282 ChocolateKM★2813 One fihgt oneKM★1853 Cyclic Tour最小费用圈覆盖★★3488 Tour最小费用圈覆盖★★3435 A new Graph Game最小费用圈覆盖★★3722 Card Game最小费用圈覆盖★★3718 Similarity求相似度★★2448 Mining Station on the Sea最短路+KM★★2853 Assignme 阅读全文
摘要:
普通匹配,多重匹配【HDU】1068 Girls and Boys最大匹配★1150 Machine Schedule最小点覆盖★1151 Air Raid最小路径覆盖★1179 Ollivanders最大匹配★1281 棋盘游戏行列匹配+求关键点★★1498 50 years, 50 colors行列匹配★1507 Uncle Tom's Inherited Land*黑白染色+奇偶匹配(1X2的矩形覆盖)★1528 Card Game Cheater最大匹配★1845 Jimmy’s Assignment最大匹配(HK算法)★2063 过山车最大匹配★2119 Matrix行列匹配 阅读全文
摘要:
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2604 矩阵乘法,得到递推公式,构造系数矩阵,然后进行快速幂。 View Code 1 #include <stdio.h> 2 #include <string.h> 3 4 int L, M; 5 6 struct mat 7 { 8 int m[4][4]; 9 mat()10 {memset(m, 0, sizeof m);}11 12 void init()13 {14 memset(m, 0, sizeof m... 阅读全文
摘要:
原题传送:http://poj.org/problem?id=3233 两个二分:二分 k ,二分矩阵。 求Sn = A + A2 + A3 + … + Ak。 首先我们能矩阵二分快速幂计算出Ak,那么我们对S再进行二分: 当k % 2 != 0则计算Ak+S(k-1),当k % 2 == 0时计算S(k/2) * (Ak/2 + E),这样就可以在log(k)的时间里算出Sk。 ps:这题有两个地方要注意,否则可能会TLE 1. 用 unsigned int,不要 long long 2. 取模运算效率很低,矩阵乘法单个元素最大值不是很大的情况下先算出来再取一次模更好。Vi... 阅读全文
摘要:
原题传送:http://codeforces.com/problemset/problem/58/C 很容易想到很不高效的 O(n2) 的枚举算法,这种算法中进行非常多不必要和重复的计算。对题目给的数据范围显然会T。 题目中要求的是序列间隔1进行前半段的上升与后半段的下降,那么,以下两点很容易知道: 1. 整个序列可以由序列的任一个数来决定 2. 至少有一个数是不被改变的 那么,我们只需要求出在序列的某种合法状态下,所给序列中最多的合法元素个数 m,则 n-m 就是所求。这里我线性时间扫一遍每一个元素,同时计算出当前值不改变情况下第一个元素的值 x(说穿了,就是序列的每一... 阅读全文
摘要:
CJK 中文支持,现不推荐这种方式CJKfntef CJK 下的中文下划线、浪线、加点等标记。xeCJK 沿用CJKpunct CJK 下的中文标点压缩CJKnumber CJK 下的数字。在 ctex 宏包中被替代为更方便的命令。xeCJK 沿用CJKspace CJK 下的中西文间距控制ccmap 使用 PDFLaTeX 处理 CJK 中文文档时的内码修正xeCJK 用于 LaTeX 的 XeTeX 中文支持,现在推荐这种方式zhspacing 主要用于 Plain TeX 的 XeTeX 中文支持,LaTeX 下不推荐此方式ctex, ctexcap 及 ctex 文档类... 阅读全文
摘要:
原题链接:http://codeforces.com/problemset/problem/219/E 这题和hotel那题很像,一开始想到的是用线段树,设0为空位,1为占位,那么需要维护左端最长0,右端最长0,中间最长0,然后在插入删除操作中需要考虑区间的合并,区间的分解等问题……瞬间就被恶心到了。 网上看到别人一种奇妙的做法,运用STL里面的set容器进行一个模拟线段树而又类似贪心的做法,代码量大大减少了,写起来非常方便。用了set容器,那么这道题就是纯粹的对set进行增加删除元素了。View Code 1 /* 2 代码出处:http://www.cnblogs.com... 阅读全文
摘要:
原题链接:http://codeforces.com/problemset/problem/3/B 看了好久才明白题意:有一辆卡车,要装载一些船只,这些船只分为“1”和“2”两种,再给出n只船的类型及其capacity(理解为“价值”会更好),要求给定卡车容量v的情况下求最大装载价值。 理解完题意之后我想是背包问题吧,但是所给v达到10^9。 其实这道题用的是贪心思想。 首先把两种船只分开,分别进行排序。最优解总是先取价值高的。可以O(n)的时间复杂度枚举选择i只“1”船,则选择“2”船只的个数就是min((v - i) / 2, tc),tc为“2”船总个数,后面的处理就不难了。... 阅读全文