- 博客(21)
- 收藏
- 关注
原创 HDU 5416 CRB and Tree
棒子出的题目,统计一下两点间所有边的值的抑或值为k的有多少,思路很简单,运用了抑或运算的一些性质,因为一条路走两次最后的抑或值为0,对结果没有影响所以可以将题意转化为从一个顶点走到根节点再从根节点走到另外一个点,这样只需要用树形dp统计一下从根节点到其他节点的值的个数就可以了,这样最后再做一下遍历就可以结束。#include #include #include #include #incl
2015-09-07 09:17:45
308
原创 HDU 5335 Walk Out
这是一个搜索的题目要用一次深搜找到初始位置,再用宽搜找到答案,首先分析一下题目发现,从起点来向周围的点搜索,如果发现0则优先进入零,但是不进入1,如果没有0则都需要搜索一遍,不过我们再仔细分析题目就会发现,一旦第一个一进入则只可能向右或者下搜索,因为一旦有一出现那么向上或者向左搜索只会使数位更大,这是比踩1更可怕的事情,而对于一个点(x,y)来说最大的数位就是n- x + m - y;由此我们发现
2015-07-30 20:53:13
303
原创 HDU 5325 Crazy Bobo
比较奇怪的一道题目,大致意思读懂之后就会发现一个规律,权值小的向大的连一条有向边,然后求出每个点能到达的有多少个点,取个大的,比赛的时候没想出来,这样做之所以对,是因为对于排序后,任意相邻的两个节点,他们之间的路径,可定都是从当前节点u连过去的,那么都是小于这两个节点的。还有要注意的是这个算法会爆栈因此需要拓展栈,而且这个东西只有c++才有用,G++上没办法用!!!!#pragma com
2015-07-29 01:29:46
449
原创 HDU 5317 RGCDQ
想法型数论题,题意很简单,就不多说了,首先想的时候认为算出所有数字的质因子个数会超时就没多想,结果跪了好久,最后仔细一想发现需要的时间也不多才想到该怎么做。本题的突破点是,每个数字的质因子的个数只可能在8以下,非常小,打表算出每个数字的质因子的个数之后,记录下每个数字之下质因子个数是1~8的数的个数分别是多少个,然后R和L的这写记录数做差之后就知道R和L之间质因数个数是1~8之间的数分别有多少
2015-07-28 21:10:34
284
原创 HDU 5299 Circles Game
一道博弈题目,是典型的树上博弈,但是其中有一些计算几何的成分,比较关键的地方是建树,建树的时候使用了一个链式前向星,而在计算几何查询圆之间的嵌套关系的时候又使用一个,一共两个,然后就用正常的树上博弈的方法轻松AC。#include #include #include #include #include #include #include #include #include #in
2015-07-28 21:01:12
244
原创 HDU 5316 Magician
题目不多说,就是更新和查询,然后用线段树解决问题,每个节点储存四个信息,分别是以奇数位开头奇数位结尾,奇数位开头偶数位结尾,偶数位开头奇数位结尾,偶数位开头偶数位结尾的最大和,然后更新就行没具体看代码#include #include #include #include #include #include #include #include #include #include
2015-07-28 20:54:41
271
转载 SG函数的详细解释
SG函数可以说是博弈论中很重要的运用,有了SG函数就可以解决很多很难解决的博弈问题,也是解决例如nim博弈和翻硬币博弈的一些基础。入门一:首先来玩个游戏,引用杭电课件上的:(1) 玩家:2人; (2) 道具:23张扑克牌; (3) 规则: 游戏双方轮流取牌; 每人每次仅限于取1张、2张或3张牌; 扑克牌取光,
2015-07-14 20:38:48
2340
1
转载 莫比乌兹反演
莫比乌兹反演算是数论中一个神奇的东东,理解起来有点吃力,对它的证明更是望而却步,好了记住结论打出模板比赛的时候用用就好~~~首先说一下莫比乌兹反演的公式和性质:和是定义在非负整数集合上的两个函数,并且满足条件,那么我们得到结论 在上面的公式中有一个函数,它的定义如下: (1)若,那么 (2)若,均为互异素数,
2015-07-13 22:22:53
612
转载 三大基础博弈
以下是我从网上收集的关于组合博弈的资料汇总:有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下面我们来分析一下要如何才能够取胜。(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每
2015-07-13 21:43:49
476
原创 LightOJ 1336- Sigma Function
LOJ 真是个比较奇怪的OJ好像一直在从别的OJ上抄题,不过无所谓了,能A题就好废话不多说开始说题。这是一个计算公式,在的时候计算出所有n的因数的和的值,最后让你算出小于n的所有的数的这个值是偶数的有多少个。其实这个数是有规律的,我已经找的差不多了,但是一直想找出记录的方法,无论如何十的十二次方的数是没法记录的,最后才发现是自己没想到可以用计算的方法,好了,知道可以算了之后,又一直
2015-05-31 01:15:46
586
原创 UVA 11827 - Maximum GCD
一道挺简单的数论题,但是数论不是主要的问题,输入是主要的问题,使用了一个比较奇特的输入方法,使读入的一串字符串形成一个输入流#include #include #include #include #include #include #include #include #include #include #include #include #include #include
2015-05-29 00:23:49
328
原创 10168 Summation of Four Primes
一道数论的题,问一个数是否能被分解成四个素数相加的方式,打表发现知道1e7之内的相邻素数之间的差距不超过145,而素数只有一个2是偶数。而根据哥伦巴克猜想每个非二偶数都可以拆成两个素数的和。这样我们直接对200以下的偶数打表处理出两个素数之和。这样分情况讨论,200以下的书直接用2和3构造出一个偶数。而对于大于200的数直接求出比他小30以上的素数作为b,再更具奇偶用2或者3构造出一个小于
2015-05-18 17:28:17
456
原创 UVA 10139 Factovisors
一道数论题,题意大致是判断一个数m是不是另一个数n的阶乘的因子。判断其实也非常的简单就是看m的因子的的个数是否多于n的阶乘中相应的因子的个数;而计算n的阶乘中因子p的个数由一个算法计算代码如下int Cal(int w, int p) //计算w的阶乘中有多少个p{ int ans = 0; while(w) { w /= p; ans +
2015-05-18 15:19:26
266
原创 POJ 3225 Help with Intervals 线段树
做了好多线段树,顿时感觉线段树博大精深,虽然最基本的只是递归的更新,但是在写线段树的时候需要注意的地方真是太多太多,每个题都有自己要注意的地方,每个题都有自己的解决问题的小技巧,因而做线段树的时候需要自己对于线段树有特定的分析和不同的做法,好了感慨完了开始说题。本题说的是对一排数进行操作,主要有四个OperationNotationDefinition
2015-05-14 08:45:21
342
原创 HDU 1011 Starship Troopers 树状dp+dp背包
大概意思是:有N个洞,M个士兵,每个洞中有a个bug,b个brain,每个士兵可以最多Kill掉20个bug,入口在洞口1处,问可以得到多少个brain。 在每个节点进行一下背包dp,也就是个树状dp+dp背包,算数每个节点在一定数量的士兵的情况下所获得的最大的宝藏数。 for(k = last; k >= o; k--) for(h = o; h < k; h++)
2015-05-14 08:08:27
477
原创 POJ1436 Horizontally Visible Segments
个人觉得比较坑的线段树的题目,因为题意我就理解了半天题意:有N根竖直的杆子,每个杆子都用一个长度,两根杆子可以想见意味着两个杆子在水平方向上存在一条直线,使得该直线连接两个杆子,并且该水平直线和其他的杆子都没有交点,问一共有多少对三根杆子的组合使得杆子两两可见。这里要注意的地方有一点是如果只是两个杆子的边界相同,只要他们中间没有间隔他们也能相互看见,比如说y坐标为1
2015-05-07 10:55:43
337
原创 hdu 1542 Atlantis 线段树 + 扫描线
比较经典的一道题,线段树 + 扫描线,今年第一次看到这道题懵懵懂懂感觉以前做过,不过找不到代码了记得以前也是一知半解现在看也不会索性又研究了一下,现在再看这个东西感觉有点想法了,不过对于细节还是不知道该怎么处理。最后看了题解ac,不过这次是真的懂了以后也不怕了。题意大致是给了几个相互重叠的矩形然后让你求出其面积。将每个矩形的上下两条水平边存到数组中(得记录这条边是下边还是上边,为了
2015-05-05 11:21:33
355
原创 HDU 4565 SO easy!
长沙的邀请赛题目,题目难度和题目一样so easy 可是我还是没有自己做出来,也是因为没有认真想把。这道题有两个方面的看点,一个是通过题目所给的条件推出公式就可以了思路:留意数据范围(a-1)^2√b)^n+(a-√b)^n的和为整数,而0(a-√b)^n(a+√b)^n+(a-√b)^n]%m, 已知Sn的通项公式了,如果我们能求出它的递推公式,就能用
2015-05-05 11:19:40
327
原创 树状dpPOJ3342Party at Hali-Bula
题意很简单,还是员工不想见老板,只不过多了一个判断唯一性的东西,感觉有点小意思,其实也就是加了一个数组来判断是否是唯一的,然后递归的时候顺便判断一下唯一性就好了,不多说上代码~~~#include #include #include #include #include #include #include #include #include #include #include
2015-04-30 02:26:40
259
原创 HDU4499Cannon
水题一道,小模拟,写的时候也算挺顺利,因为数据范围特别小所以直接暴力,用了一下剪枝不过不知道作用不大,无论如何还是ac了,不多说直接上代码#include #include #include #include #include #include #include #include #include #include #include #include typedef lon
2015-04-30 01:55:15
310
原创 Rebuilding Roads(POJ1947)树状dp
最近遇到了写树状dp的题看着有点意思,就学习了一下,从0开始,从水题开始。首先做了一道POJ上的水题Rebuilding Roads(POJ1947) 首先,这道题的输入储存是我以前没有用过的,用father[]储存父亲,而用son[]储存最后一个儿子,而brother[]则储存了相邻的兄弟节点,这样的方法是这次get的技能之一。 其次这道题就是dp的转移dp[i][j]记录下
2015-04-26 23:54:15
295
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人