摘要: SCU's closet及其恶心的一道水题,今天比赛看人家大牛几分钟1次AC,本来以为只是普通的签到题,结果比赛提交了接近20次,还是没能AC。。。事后通过与队友交流,按照B-A排序(我将所有可能情况都试过,就是没考虑这个),吸取教训// File Name: b.cpp // Author: rudolf // Created Time: 2013年04月14日 星期日 12时42分22秒 #include<vector> #include<list> #include<map> #include<set> #include<de 阅读全文
posted @ 2013-04-14 22:04 bo_jwolf 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 1. const的最初动机是取代预处理器#define来进行值替代#define只做些文本替代,它既没有类型检查概念,也没有类型检查功能,所以预处理器的值替代会产生一些问题。这些问题在C++中可以通过使用const来避免。2. C++中的const默认为内部连接(internal linkage)const仅在被定义过的文件里才是可见的,而且在连接时不能被其他编译单元看到(默认情况)。3. 当定义一个const时,必须赋一个值给它也就是说,在定义的时候必须要进行初始化。4. const要么保存在符号表中,要么由编译器为其分配存储空间通常C++编译器并不为const创建存储空间,而是把这个定义保 阅读全文
posted @ 2013-04-14 21:25 bo_jwolf 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 运算符重载常用于解决结构体或是自己定义的类型的加减运算,提供了方便的方式!比如一个类里面的两个整数的相加,可以通过重载运算符+,其次运算符重载常用友元函数实现,可以实现更多的功能!因为友元函数可以访问类的所有成员!先写一个成员函数实现重载'+',睡觉后再写一个友元函数重载的方式!include<iostream> #include<string> #include<cstring> using namespace std; class ST { private : string name; public : void show() { cou 阅读全文
posted @ 2013-04-14 20:39 bo_jwolf 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 2013WHUACM校赛网赛题目题解一个人出一套题目略累。。不过还好数据啥的没出什么差错。关于题目描述:附件中会有一份中文的题目,所以以下题解不再赘述题意。E-easy N-normal H-hard VH-very hardA – A problem on tree (N)SolutionTag:贪心,结论。我们首先来考虑一条链的情况:设第一个点的值是a,第二个是b,第三个是c。。。即a-b-c-d。。。那么有:ch[1]=ach[2]=a+bch[3]=max(2a+c,a+b+c)ch[4]=max(3a+d,2a+2b+d,2a+c+d,a+b+c+d)ch[5]=max(4a,3a+ 阅读全文
posted @ 2013-04-14 18:23 bo_jwolf 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但当函数是凸性函数时,二分法就无法适用,这时三分法就可以“大显身手”~~ 如图,类似二分的定义Left和Right,mid = (Left + Right) / 2,midmid = (mid + Right) / 2; 如果mid靠近极值点,则Right = midmid;否则(即midmid靠近极值点),则Left = mid;程序模版如下:double Calc(Type a) { /* 根据题目的意思计算 */ } void Solve(void) { double Left, Right; d... 阅读全文
posted @ 2013-04-14 16:13 bo_jwolf 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 比赛链接:http://www.acmore.net/contest.php?cid=1008 首先声明,我参加这场比赛纯属凑热闹,不过既然做了,就写一个解题报告,希望能帮助到需要帮助的同学。 这场比赛,总体来说难题适中(仅对我个人而言),对于初学者来说有点偏难,也有可能是我实力太弱了,呵呵,不过我说的是我自己真实感受。 下面奉上每一题的解题思路,希望能够给同学一点帮助。如果需要代码,可以私信我,这里就不贴代码了。如果读者有更好的解题方法,希望您不吝赐教,能够留言说说思路,在这里先谢过了。Problem A 客户数量这道题给出了将一个长度为n的糕点,切成单位长度。已知每次切割需要花费x*... 阅读全文
posted @ 2013-04-14 11:30 bo_jwolf 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 欧拉函数直接计算公式 欧拉函数的定义: E(N)= ( 区间[1,N-1] 中与 N 互质的整数个数). 对于 积性函数 F(X*Y),当且仅当 GCD(X,Y)= 1 时, F(X*Y) = F(X)* F(Y) 任意整数可因式分解为如下形式: 其中( p1, p2 ... pk 为质数, ei 为次数 ) 所以 因为 欧拉函数 E(X)为积性函数, 所以 对于 , 我们知道 因为pi 为质数,所以 [ 1, pi-1 ] 区间的数都与 pi 互质 对于 区间[ 1,] ,共有个数, 因为只有一个质因子, 所以与约数大于1 的必定包含 质因子 , ... 阅读全文
posted @ 2013-04-14 00:57 bo_jwolf 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 例题是 POJ 1061 青蛙的约会 题目大意是,一个周长为L的圆, A、B两只青蛙,分别位于 x 、y 处,每次分别能跳跃 m 、n ,问最少多少次能够相遇,如若不能输出 “ Impossible” 此题其实就是扩展欧几里德算法-求解不定方程,线性同余方程。 设过 k1 步后两青蛙相遇,则必满足以下等式: ( x + m*k1 ) - ( y + n*k1 ) = k2*L ( k2 =0 , 1 , 2....) //这里的k2: 存在一个整数k2, 使其满足上式 稍微变一下形得: ( m - n )*k1 - k2*L= y - x 令 a = m - ... 阅读全文
posted @ 2013-04-14 00:40 bo_jwolf 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 刘雅琼PPT讲解链接:http://wenku.baidu.com/view/8e9ebefb0242a8956bece4b3.html扩展KMP: 给出模板串A和子串B,长度分别为lenA和lenB,要求在线性时间内,对于每个A[i](0<=i<lenA), 求出A[i..lenA-1]与B的最长公共前缀长度,记为ex[i](或者说,ex[i]为满足A[i..i+z-1]==B[0..z-1]的最大的z值)。 扩展KMP可以用来解决很多字符串问题,如求一个字符串的最长回文子串和最长重复子串。【算法】 设next[i]为满足B[i..i+z-1]==B[0..z... 阅读全文
posted @ 2013-04-14 00:35 bo_jwolf 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 问题:模线性同余方程组: x = a1 ( mod n1 ) x = a2 ( mod n2 ) .... x = ak ( mod nk )给定 A ( a1, a2 , ... , ak ) , N ( n1, n2, ..., nk ) 求 X 。通常分为两种 一, ( Ni, Nj ) 之间两两互质 二, ( Ni, Nj ) 之间不都互质一 ( Ni, Nj ) 之间两两互质 定理( 见算法导论 P874 ): 如果 n1, n2 , ... , nk 两两互质, n = n1*n2*..*nk ,则对任意整数 a1,a2,a3..,ak , 方程组 x =... 阅读全文
posted @ 2013-04-14 00:33 bo_jwolf 阅读(266) 评论(0) 推荐(0) 编辑
摘要: int gcd( int a, int b ){ if( a == 0 ) return b; if( b == 0 ) return a; if( a%2 == 0 && b%2 == 0 ) return 2*gcd( a/2, b/2 ); else if( a%2 == 0 ) return gcd( a/2, b ); else if( b%2 == 0 ) return gcd( a, b/2 ); else return gcd( abs(a-b), min(a... 阅读全文
posted @ 2013-04-14 00:28 bo_jwolf 阅读(107) 评论(0) 推荐(0) 编辑
摘要: Problem A 客户数量 可以得出将长度为 len的蛋糕切成 len段 1的,不管如何切,总花费都为 len*(len-1)/2 对于每个顾客,来到的时间st,以及需要的蛋糕长度k,则有一个终止时间ed = st+k*(k-1)/2 对每个顾客求出其服务终止时间,然后得到n个区间,将区间以终点排序,然后线性扫过去,用i的起点时间与前一个服务顾客 的终点时间比较即可。 时间复杂度 O( NlogN )#include<cstdio> #include<cstring> #include<algorithm> #include<cassert> 阅读全文
posted @ 2013-04-14 00:20 bo_jwolf 阅读(146) 评论(0) 推荐(0) 编辑