自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

飘过的小牛

I'm growing!~~

  • 博客(44)
  • 资源 (1)
  • 收藏
  • 关注

原创 POJ-1330 Nearest Common Ancestors【LCA】

题目链接:http://poj.org/problem?id=1330题目大意:给你一个树,问任意节点的最近公共祖先。解题思路:LCA问题。用RMQ解决。~。~不过我的办法比较2,因为我需要另外找根,另外找level数组也需要遍历。应该可以优化。代码如下:#include#include#include#include#include#includeus

2012-03-31 09:05:59 1292

原创 RMQ实现LCA

RMQ实现LCA。。。。。。。。。。弄了一下午,终于搞定了。#include#include#include#include#include#include#includeusing namespace std;const int N = 100005; //不同结点数const int M = N * 2; //总结点数int visit[M], level[M], f

2012-03-30 21:50:31 1631

转载 19个有用的gnome shell extension 扩展

#1, Alternative tab extension :使用ALT+TAB 经典模式1sudo apt-get install gnome-shell-extensions-alternate-tab#2, Alternative Status Menu extension :在状态栏添加“Power off”与“Hibernate”:[推荐]1sudo apt-g

2012-03-30 12:54:00 25639 1

转载 Ubuntu下关于KDE鼠标高级设置中两个不太容易搞明白的概念

指针加速该设置允许您改变屏幕上鼠标指针和真实输入设备(可能是鼠标、轨迹球或其他设备)移动距离的关系。高加速倍数会导致指针高速移动(即使您只是小幅移动物理设备)。提示:在多数系统上,1x到3x运行良好。超过3x可能使得指针不易控制。指针快速移动阈值该阈值规定了指针加速开始生效前鼠标指针移动的最小距离。如果鼠标移动距离在该阈值之内,鼠标指针将会按照指针加速设置为1x

2012-03-29 08:00:23 3636

原创 POJ-3264 Balanced Lineup【RMQ】

题目链接:http://poj.org/problem?id=3264题目大意:一个农夫有N头牛,每头牛的高度不同,我们需要找出最高的牛和最低的牛的高度差。解题思路:我是用RMQ写的。N为50000,Q为200000,如果我们暴力的话,需要50000*200000=10000000000,需要25s左右.所以我们需要高效的算法,而RMQ正好解决的就是区间最值问题,复杂度为nlo

2012-03-28 09:01:13 3881 2

原创 NYOJ-119 士兵杀敌(三)【RMQ算法】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=119解题思路:RMQ算法。不会的可以去看看我总结的RMQ算法。http://blog.csdn.net/niushuai666/article/details/6624672代码如下:#include#include#includeusing

2012-03-27 21:14:39 6229 2

原创 Hdu-1754 I hate it【线段树(单点更新)】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754解题思路:依然线段树水题。。。。。代码如下:#include#include#includeusing namespace std;#define lson l, m, root << 1#define rson m + 1, r, root << 1 | 1co

2012-03-27 13:48:37 1479

转载 ubuntu最常用的10个快捷键

ubuntu 是当前最流行的linux发行版之一,使用ubuntu除了经常使用的Ctrl + C (复制) and Ctrl + V (粘帖),其实还有一些不常用但很有用的ubuntu快捷键。如果你现在正搜罗更多的ubuntu 快捷键,相信你可以在这里找到一些新的。1、显示桌面Ctrl + Alt + D快捷键让你很快地最小化所有窗口,看到桌面。当所有窗口都最小化后,你再按这个

2012-03-27 12:46:42 4943 1

原创 Hdu-1166 敌兵布阵【线段树(单点更新)】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166解题思路:线段树的入门题,可以用谷歌搜索线段树或者segment tree,理解后就可以了。我采用的是静态建树。代码如下:#include#define lson l, m, root << 1#define rson m + 1, r, root << 1 |

2012-03-27 11:23:06 1662

原创 POJ-2352 Stars【树状数组】

题目链接:http://poj.org/problem?id=2352题目大意:给你星星的坐标(y递增,若y相等,x递增),每个星星都有一个等级,规定它的等级就是在它左下方的星星的个数。输入所有星星后,依次输出等级为0到n-1的星星的个数。解题思路:就是统计x前面比它小的星星的个数,符合树状数组最基本的应用。注意的是:树状数组下标为0的位置不可用,所以我们需要在输入x坐标时+1

2012-03-24 07:54:38 4437

原创 NYOJ-21 三个水杯【隐式图搜索】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=21解题思路:隐式图搜索。我们需要对广搜到基本框架了解。因为范围为100,最多有100×100×100=1000000种情况,所以可以用广搜暴力来枚举每一种状态。这个图是一个有向图,和SPFA不同,如果一个状态已经出现过,就不需要再考虑了。但是SPFA中,一个状态可能通过不同

2012-03-23 16:54:01 3678 1

原创 表达式二叉树

总结了一下常见的表达式求值问题,写了一个模板,输入为中缀式时,用中缀式建立表达式二叉树,可以打印前缀式和后缀式,可以用前缀式计算,也可以用后缀式计算。代码如下:#include#include#include#include#include#include#include#include#include#include#includeusing namespa

2012-03-23 10:19:47 2018

转载 ACM中国国家集训队论文集目录(1999-2009)

国家集训队1999论文集陈宏:《数据结构的选择与算法效率——从IOI98试题PICTURE谈起》来煜坤:《把握本质,灵活运用——动态规划的深入探讨》齐鑫:《搜索方法中的剪枝优化》邵铮:《数学模型的建立、比较和应用》石润婷:《隐蔽化、多维化、开放化——论当今信息学竞赛中数学建模的灵活性》杨帆:《准确性、全面性、美观性——测试数据设计中的三要素》周咏基:《论随机化算法的

2012-03-22 15:29:08 13154 3

原创 NYOJ-128 前缀式计算【stringstream流应用】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=128解题思路:stringstream流的应用。有几个函数需要特别说明一下:unget()把读出的数据重新放入流中atoi,arr to int,把字符串转换为int类型atof,把字符串转换为double类型string s;s.c_str();把stri

2012-03-20 17:28:03 2094

原创 NYOJ-468 Fibonacci数列(三)【大素数判断】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=468解题思路:这道题考察的是大素数的判断,但是有一个知识点。可以在黑书的221页找到。就是斐波那契数列从第5项开始,如果它的项数为素数,那么它就是斐波那契素数。因为斐波那契数列为1,1,2,3,5。其实第二项为1,而1不是素数,所以不是斐波那契素数,第4项为3,虽然3和1,2互

2012-03-20 11:35:53 2917

原创 NYOJ-333 mdd的烦恼【欧拉函数】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=333解题思路:欧拉函数应用,但是这个题和上个不一样,不能打表算,因为n的范围为整形,数组无法存下,所以只能用最原始的素分解来写。。。代码如下:#include#include#include#includeusing namespace std;const

2012-03-20 11:13:22 1985

原创 NYOJ-479 Coprimes【欧拉函数】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=479解题思路:欧拉函数打表即可。n的欧拉函数计算方法如下:先将n素分解,之后取全部素因子。则n的欧拉函数就是n*(1-/1p1)*(1-1/p2)*.....这样,当n比较小的时候,我们可以通过打表的方法计算,先将f[i]初始化为i,然后从2开始向后遍历,如果该数是素数

2012-03-20 10:45:28 1629

原创 大数是否为素数【费马小定理+Carmichael数判断】

作为判断一个大数是否为素数的模板。代码如下:#include#include#includeusing namespace std;long long multi(long long a,long long b,long long mod){ long long temp = a,sum = 0; while(b) { if(b&1) sum = (sum +

2012-03-19 20:09:57 6059

原创 POJ-3070 Fibonacci【矩阵二分幂】

题目链接:http://poj.org/problem?id=3070解题思路:矩阵二分幂,模板题~~~~~水过代码如下:#include#include#include#include#include#includeusing namespace std;#define CLR(arr, what) memset(arr, what, sizeof(a

2012-03-19 16:57:16 1599

原创 NYOJ-301 递推求值【矩阵二分幂】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=301解题思路:典型的矩阵二分幂。代码如下: #include#include#include#include#include#includeusing namespace std;#define CLR(arr, what) memset(

2012-03-19 16:44:42 1083

原创 HDU-1005 Number Sequence【矩阵二分幂】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005题目大意:给你一个递推公式,求出第n项。由于某项可能太大,所以取余7解题思路:矩阵二分幂的经典运用。代码如下:#include#include#include#include#include#includeusing namespace std;#d

2012-03-19 16:13:32 1544

原创 NYOJ-467 中缀式变后缀式【逆波兰法】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=467解题思路:经典的逆波兰法求表达式的值,以前是用栈模拟的,但是没有仔细研究,现在对表达式求值方法有了一定的了解。其实表达式求值的通法就是建立一棵表达式树,则,前缀、中缀、后缀表达式分别对应表达式树的前序、中序、后序遍历。则,通过表达式树就可以对这个问题做一个全面的分析了。

2012-03-18 19:02:33 4622

原创 Hdu-1016 Prime Ring Problem【DFS】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016题目大意:给你一个数字(小于20),你可以将这些数字任意排列,如果任意2个相邻的数相加的结果是一个素数,就是一个素数环。解题思路:深搜。优化在于判断这个数字的奇偶,因为任意2个数为素数,这个数肯定为素数,所以,任意2个数都必须是奇偶相邻(这个是肯定的吧),现在,如果这个数是奇数

2012-03-17 21:57:19 1433

转载 算法实质【Matrix67】

动态规划 :你追一个MM的时候,需要对该MM身边的各闺中密友都好,这样你追MM这个问题 就分解为对其MM朋友的问题,只有把这些问题都解决了,最终你才能追到MM。 因此,该问题适用于聪明的MM,懂得“看一个人,不是看他如何对你,而是看 他如何对他人。”的道理,并且对付这样的MM总能得到最优解。但确定是开销 较大,因为每个子问题都要好好对待。。。。 贪心法 :你追一个MM的时候,从相识

2012-03-17 10:07:14 2189 3

原创 NYOJ-32 组合数【DFS】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=32解题思路:其实就是写一个全排列,原来是用STL的next_permutation写的,昨天看了一下深搜,就用深搜写了下。不过没怎么写过深搜,以后多写吧。代码如下:#include#include#include#includeusing namespace std

2012-03-17 09:52:23 2251

转载 我们的未来在哪里?

相对同时刚出校门同学从事其它行业而言优厚的薪水,以及不断学习更新的专业知识不仅仅让你感到生活的充实,更满足了你那不让外人知的虚荣心。在刚出校门的几年中,你经常回头看看被你落在后面的同学们,在内心怜悯他们的同时,你也会对自已天天加班的努力工作感到心里平衡:“有付出才会有回报”这句话在那几年中你说的最多,不管是对自已的朋友们还是自已的爱人。第二句最常说的话是对公司的领导:“不行我就走人!”,实际上你也

2012-03-15 21:33:25 1774 1

原创 NYOJ-452 ShippingCubes【数学】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=452解题思路:这道题是topcoder的一次比赛题目,但是数据太水,暴力可过。3层循环无压力。但是如果是正规做法,应该是先将n开3次方,因为要3个数的和最小,所以3个数越接近越好(这貌似是个定理,不过不知道名字,就是知道而已),然后,如果找到这个数,剩下的就是n/k,这时,我们

2012-03-15 11:15:50 1361

原创 NYOJ-485 A*B Problem【九余数定理】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=485解题思路:经典的九余数定理,可以参考这篇文章:http://blog.csdn.net/niushuai666/article/details/6856109代码如下:#include#include#include#include#includeus

2012-03-14 20:40:26 1515

原创 NYOJ-421 打扑克【模拟】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=421解题思路:这道题的原型大家貌似都知道,各地都有不同的叫法。(汗,我竟然不知道~)题意很好理解,本来想的是暴力的办法,因为这个难度才2,所以想水过去吧。但是一下测试数据,200组,每组5000范围,只能想想再写了。好吧,这道题写了整整一天。。。。。。。。。。。。。。。。。。。

2012-03-14 20:27:01 1638

转载 C++this指针的理解

先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。(虽然比int char这样build-in类型复杂的多,但首先要理解它们一样是类型)。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针

2012-03-13 15:16:41 1411

原创 NYOJ-453 小珂的烦恼【模拟||找规律】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=453解题思路:简单的可以模拟,用一个数组来维护数组中未使用过的最小数字,若使用,就把它对应的另一个数也标记为使用过。模拟一下即可。代码如下:#include#include#includeusing namespace std;const int N = 2000

2012-03-13 09:49:04 1993

原创 Hdu-1215 七夕节【算术基本定理应用】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1215解题思路:这道题要求的就是一个整数的因子之和。但是这道题在杭电数据比较弱,各种方法都能过。暴力都能过,但是在我们OJ,只能使用优化的代码。因为数据是1-500000,暴力的话,估计得跑个几十秒。下面说下这道题的优化解法:1.素数打表,这个就不说了,基本功。2.接下来就是这个

2012-03-12 21:27:18 1764

原创 NYOJ-183 赚钱啦【最短路】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=183解题思路:最短路裸题。最长路+判断正环学会的东西是如何用SPFA判断负环,可以用一个数组维护每个节点入队的次数,超过n次就肯定有负环出现。代码如下:#include#include#include#include#include#inc

2012-03-11 16:17:28 1458 1

原创 NYOJ-303 序号互换【模拟】

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=303解题思路:省赛的水题。写了一下,第一次把题意理解错了,然后第二次写,发现数字转字母不会。。YY了才知道最后一个是Z时,总是26×26的0次方,不是26的话我们直接res/=26就可以把余数去掉,不影响下一个元素,而这个我们res/=26之后,这个Z结尾的26并没有去掉影

2012-03-09 15:55:38 1571

原创 寻找主元素

如果一个数组A[1..n]中超过半数的元素都相同时,该数组被称为含有主元素。算法思想:利用快速排序的思想,如果这个数组存在主元素,则它一定为排序后的中位数。但问题是,我们要设计O(n)算法,我们知道,排序的最优时间复杂度是O(nlogn),所以我们需要借助其他的方法来完成这个问题。我们可以想到快速排序,当我们调整基准元素时,如果基准元素到达n/2,则说明左边都比它小,右边都比它

2012-03-09 09:00:24 4807 4

原创 变量声明和定义的区别

我们在程序设计中,时时刻刻都用到变量的定义和变量的声明,可有些时候我们对这个概念不是很清楚,知道它是怎么用,但却不知是怎么一会事,下面我就简单的把他们的区别介绍如下:    变量的声明有两种情况:    (1) 一种是需要建立存储空间的(定义、声明)。例如:int a在声明的时候就已经建立了存储空间。     (2) 另一种是不需要建立存储空间的(声明)。例如:extern int

2012-03-08 19:23:37 1865

原创 POJ-1511 Invitation Cards【最短路】

题目链接:http://poj.org/problem?id=1511题目大意:给你一个N个点的图,求1点到其他每个点最短路权值之和sum1,然后再求反向最短路(其他所有点到1点最短距离)之和sum2。输出sum1+sum2解题思路:别人说的题意,正好最短路也忘了,就用SPFA写了一下。结果SPFA忘了。。。问了别人,算是懂了。所谓的SPFA,就是bellman

2012-03-05 21:18:20 2092

原创 C++易错点总结

1.下面这段代码考察变量的作用域问题。#includeusing namespace std;void other(){ static int a = 2; static int b; int c = 10; a += 2; c += 5; cout<<"----other-----"<<endl; cout<<a<<" "<<b<<" "<<c<<endl; b

2012-03-03 15:35:55 2125

转载 素数与素性测试【Matrix67】

1. 素数的个数无限多(不存在最大的素数)  证明:反证法,假设存在最大的素数P,那么我们可以构造一个新的数2 * 3 * 5 * 7 * ... * P + 1(所有的素数乘起来加1)。显然这个数不能被任一素数整除(所有素数除它都余1),这说明我们找到了一个更大的素数。2. 存在任意长的一段连续数,其中的所有数都是合数(相邻素数之间的间隔任意大)  证明:当03. 所有大

2012-03-03 11:16:48 1196

转载 同余运算及其基本性质【Matrix67】

100除以7的余数是2,意思就是说把100个东西七个七个分成一组的话最后还剩2个。余数有一个严格的定义:假如被除数是a,除数是b(假设它们均为正整数),那么我们总能够找到一个小于b的自然数r和一个整数m,使得a=bm+r。这个r就是a除以b的余数,m被称作商。我们经常用mod来表示取余,a除以b余r就写成a mod b = r。    如果两个数a和b之差能被m整除,那么我们就说a和b对模

2012-03-03 11:14:11 2187

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除