06 2013 档案
摘要:C++中基类和派生类遵循类型兼容原则:即可用派生类的对象去初始化基类的对象,可用派生类的对象去初始化基类的引用,可用派生类对象的地址去初始化基类对象指针。C++中动态绑定条件发生需要满足2个条件:1:只有指定为虚函数的成员函数才能进行动态绑定,成员函数默认为非虚函数,非虚函数不能进行动态绑定2:必须通过基类类型的引用或指针进行函数调用基类类型引用和指针的关键点在于静态类型和动态类型可能不同:1:什么是静态类型?就我的理解来说,所谓的静态类型是指,当我们用上述引用或指针去调用非虚函数是,这时的引用和指针就是引种静态类型的,它对非虚函数的调用是在编译时就确定了2:从静态类型的对立来看,所谓的动态类
阅读全文
摘要:首先给出一论文讲的很好:http://www.docin.com/p-63165342.htmlhttp://www.docin.com/p-62465596.html然后给出模板胡浩大神的模板:http://www.notonlysuccess.com/index.php/splay-tree/好像胡浩大神的没有给注释,然后给出cxlove的,给出了详细的注释:http://blog.csdn.net/acm_cxlove/article/details/7790895然后给出模板题目:营业额统计题意:中文..思路:每输入一个值,我们就更新splay树,然后找他的左子树中最靠右的,右子树中最
阅读全文
摘要:A :Rescue The Princess题意:给你平面上的两个点A,B,求点C使得A,B,C逆时针成等边三角形。思路:http://www.cnblogs.com/E-star/archive/2013/06/11/3131563.html 向量的旋转。直接套公式就行,或者我们可以找到等式解一个二元一次方程然后向量判断方向即可。我比较懒,就写了向量旋转的。#include #include #include #include #include #include #include #include #include #include #include ...
阅读全文
摘要:论文:http://hi.baidu.com/3xianbin/item/917aca907a3fb6f4291647fchttp://wenku.baidu.com/view/d2414ffe04a1b0717fd5dda8.html其中一道题目求给定区间的所有数的k进制的各位数字的和:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define CL(arr, val) memse...
阅读全文
摘要:1^2+2^2+3^2+4^2+...+n^2 = n*(n +1)*(2*n +1)/6;http://wenku.baidu.com/view/b481511fb7360b4c2e3f6470.html余弦定理:cosA=(b²+c²-a²)/(2bc)cosB=(a²+c²-b²)/(2ac)cosC=(a²+b²-c²)/(2ab)
阅读全文
摘要:实际做题中我们可能会遇到很多有关及计算几何的问题,其中有一类问题就是向量的旋转问题,下面我们来具体探讨一下有关旋转的问题。首先我们先把问题简化一下,我们先研究一个点绕另一个点旋转一定角度的问题。已知A点坐标(x1,y1),B点坐标(x2,y2),我们需要求得A点绕着B点旋转θ度后的位置。A点绕B点旋转θ角度后得到的点,问题是我们要如何才能得到A'点的坐标。(向逆时针方向旋转角度正,反之为负)研究一个点绕另一个点旋转的问题,我们可以先简化为一个点绕原点旋转的问题,这样比较方便我们的研究。之后我们可以将结论推广到一般的形式上。令B是原点,我们先以A点向逆时针旋转为例,我们过A'做A
阅读全文
摘要:首先我先给出一个他们之间的关系最大公约数L和最小公倍数G的关系:1、L%G == 0;2、设A, B的最大公约数为G, 最小公倍数为L,则:L/G = (A/G)*(B/G)3、gcd(A/G, B/G) = 1;本题:题意:给你三个数x,y,z的最大公约数gcd,最小公倍数lcm . 然后求满足的x,y,z有多少种可能。(1,3,2) 和 (1,2,3)被视为不同思路:首先lcm%gcd == 0是必须的,否则无解。然后将tmp = lcm/gcd 进行因式分解。假设其中有一个质因子p1的幂为e1,那么着三个数中至少有一个含有p1,至少有一个不含p1 。如果都含有p1的话他就被分到最大公约数
阅读全文
摘要:题意:给你一个n*n的矩阵,然后(0,0)为源点,(n - 1,n - 1)为汇点。点(i,j)可以到达(i + 1,j) (i,j + 1) 花费为a[i][j]。求从(0,0)到(n - 1,n - 1)的最小割。思路:如果按照正常建图,Dinic求最大流会超时,这里要充分利用平面图的性质。然后将其转化为对偶图,然后将求最大流最小割转化为求该图的对偶图最短路问题。详细请参考:http://wenku.baidu.com/view/5a7df375a417866fb84a8e54.html#include <iostream>#include <cstdio>#inc
阅读全文
摘要:题意:给你5维的n个点的坐标,求其中两点之间曼哈顿距离最大。思路:多维曼哈顿距离的模板题目|x1-x'1|+|x2-x'2|+... ...+|xm-x'm| 去掉绝对值后x,x'分别都有2^m种状态,枚举每种状态下的最大值和最下值,然后找出差值最大的即可。#include <iostream>#include <cstdio>#include <cmath>#include <vector>#include <cstring>#include <algorithm>#include <
阅读全文
摘要:题意:给你n个地点的位置,他们是从小到大的顺序,然后每个位置都会有m个飞船,每个飞船能够传送一定的距离,如果使用该飞船会消耗掉一定的IQ,问如果一个人从1号位置开始选择飞船到达n号位置,最少的IQ花费是多少?思路:对于i位置与i+1位置,我们只要找出m个飞船中传送距离ds大于x[i + 1] - x[i]的花费IQ最少的即可。可是如何维护大于x[i + 1] - x[i]这个区间的里面最小的IQ消耗呢? 首先将相邻两点的距离求出来,然后从大到小排序,然后将m个飞船的创送距离从大到小排序,然后每次枚举到相邻两点之间的距离时,然后检查没有放入优先队列的可能比当前点的距离大的飞船,然后放进去,这样就
阅读全文
摘要:题意:给你一个n个点,m条有向边的图,然后给你k个操作,每次把第i个边改变成无向边。然后求该图的强连通块里面点数最多的值思路:首先bfs求出每个点可达的边,然后tarjan求出强连通块。每次改变边时,如果这条边的两个端点在同一连通块(u,v),直接输出最多。如果不在同一连通块,首先加上这两个连通块的个数组成新的连通块,然后枚举i u->i ,i>v满足,然后i不属于u或者v的连通块,然后加上该连通块数量即可。#include <iostream>#include <cstdio>#include <cmath>#include <vecto
阅读全文