一点一点的进步

POJ 2697 字典树 + bfs

这题一点都不难啊 ,不知道为什么这么少人过 像这种题,一看就是BFS,然后需要记录状态是否被访问过 要么你就hash  要么你就塞到字典树里 状态很少 , 也就C(16, 4) * C(12, 4) 约90多万个 然后BFS就行了 需要注意一个条件,题目要求的是先动白子,再动黑子,然后再...

2012-09-30 16:54:39

阅读数:1610

评论数:0

POJ 3261 可重叠的出现K次的最长重复子串

给定一个字符串,求至少出现K次的最长重复子串,这k个子串可以重叠。 所谓出现K次就是在任意K个地方出现了这个子串,并不要求这K个是连续的。 那么 根据罗大神的论文,用后缀数组解之 二分答案,然后用height数组判定是否至少出现了K个这种子串 #include #in...

2012-09-25 15:31:58

阅读数:1606

评论数:0

HDU 4419 矩形面积并

这题貌似想法挺简单的。 跟普通的矩形并变形一下 把三种颜色分别对应一个二进制位,那么用十进制数表示 R, G, B, RG, RB, GB, RGB 就是 1,2,4,3,5,6,7 然后在pushup操作中把这些东西更新一下就行了 注意,普通矩形并是一条线段表示进入矩形,另一条表示出了...

2012-09-24 01:40:31

阅读数:989

评论数:0

HDU 4400 Mines

题目大意是二维坐标系上有一些炸弹,每个炸弹有x,y坐标和爆炸后波及的范围r,这个r指的是跟自己曼哈顿距离r以内的点 就类似于扫雷那样,一个炸弹爆炸可能引起一片一片的炸弹炸出去 然后有一些询问,问点燃某个炸弹后会有多少个炸弹爆炸 已经炸过的就不算了 应该不难想到是用BFS去找临近的点 ...

2012-09-22 21:49:46

阅读数:2562

评论数:1

POJ 3017 单调队列+最值优化 的动态规划

令f[i] 表示前i个数按照题目要求的最小的和 则必然有f[i] = min(f[j] + max(a[j +1 , a[j + 2].....a[i]))  其中j 由于a数组都是大于0的,所以可以发现f必然是非递减的。 设a[j + 1], a[j + 2], ...a...

2012-09-19 16:59:11

阅读数:3651

评论数:0

POJ 3693 重复次数最多的连续重复子串 后缀数组

题目大意就是求重复次数最多的连续重复子串。例如abababc 答案就是ababab  因为ab连续出现的次数最多 并且题目还要求输出字典序最小的 比如abababcdcdcd  ababab和cdcdcd都符合要求 但是ababab字典序小 具体做法参见罗穗骞的论文 穷举子串的...

2012-09-17 17:38:34

阅读数:1168

评论数:0

POJ 3690 Constellations 简单hash

题目大意就是给出一个n * m的矩阵,矩阵中只有一些*或者0 n 然后有t (t p,q是提前固定的数值。 问这些询问中能是大矩阵的子矩阵的有几个 由于p , q都小于50,而且矩阵中只有两个字符 不由得让我们联想到了,把每一行给hash成一个long long 的二进制数...

2012-09-16 10:53:47

阅读数:1988

评论数:0

POJ 3695 容斥原理求若干矩形并 (n <= 20)

题目大意是给出若干个矩形(n 每个询问会给出一些矩形的编号,问这些矩形的面积并有多大 谈到矩形并,也许第一反应都是线段树 但是此题有一个特点,就是n非常小,m却非常大 用线段树很有可能会不行 于是换个思路,n很小,我们可以把所有的可能组合情况都考虑到,然后呢预处理出来,这样询问时就是O...

2012-09-16 10:42:41

阅读数:2431

评论数:1

POJ The Luckiest number 3696 数论(处理快速幂过程中超int64的情况)

此题大意就是给出一个数x 问他是否能乘以某个数后变成另一个数,使得每位都是8,然后问这个数的长度 我们观察888....这种数,可以发现,一个数如果能乘以某个数变成他,因子中不能有5,并且最多有3个2. 那么我们就先把所有的2因子都去掉,下面就是看他是否能乘某个数变成111....这样...

2012-09-16 10:36:29

阅读数:2845

评论数:0

POJ 3694 network 无向图求桥 手写栈版tarjan

这题以前做过 大意就是给出一个无向图,然后每次询问加一条边,然后输出当前图中剩余的桥的个数 大概做法就是先tarjan把桥都弄出来,然后每次加边就裸求LCA。 不过很蛋疼的事情就是在HDU上会爆栈,这很贱,所以有必要弄个手写栈版得tarjan #include #include #incl...

2012-09-16 10:19:04

阅读数:3006

评论数:0

POJ 2946 字符串hash + BFS

题意就是给出一个地图。有一个起点,一个终点 我们要从起点到终点去。但是地上有毒液,不能走,不过有一些箱子可以供你跳来跳去。这些箱子的高度是2,3或者4 然后每次跳一步只能去4个方向相邻坐标的箱子。箱子之间不用管高度是多少,只要相邻了就可以跳上去 而且箱子可以放倒。也是4个方向,放倒后的长度就...

2012-09-14 18:53:46

阅读数:1065

评论数:0

HDU 3758 Factorial Simplification 数论

这题就考一个知识点,就是求阶乘中某个素数因子的个数 题意不再说了 具体思路就是把分子的所有素因子以及其个数存起来。 分母也是。 然后看对应的素因子的个数分子是否都不小于分母就可以判断是不是整数 如果是整数进行下一步 每次二分寻找能整除的最大阶乘的数。直到找不到大于1的数 用二分是因为...

2012-09-14 00:42:51

阅读数:1065

评论数:0

HDU 3760 Ideal Path 最短路+BFS

这题的话其实想是比较好像的,就是写起来代码比较多 题目大意就是给出了一个无向图,每条边有一个编号。 然后让我们求一条编号字典序最小的最短路 那么首先我们做两遍SPFA,分别求出起点到所有点的距离,以及终点到所有点的距离 这样我们就能判断某个点是否是最短路上的点 之后我们进行BFS ,其实...

2012-09-14 00:36:23

阅读数:1658

评论数:0

HDU 3756 三分法求极值

题意就是给出了一些点 求一个最小的圆锥体能把这些点都包含进去 要求这个圆锥体的顶点必须在z轴正上方并且底面必须在x-y面上 不难发现这其实就是一个求极值的问题。 底面的半径取的太小或者太大都会导致圆锥体的体积太大。 所以用三分底面半径的方法,每次求高是所有的点中求出的高最大的那个 ...

2012-09-14 00:23:17

阅读数:1410

评论数:0

HDU 4125 2011福州现场赛E题 KMP+笛卡尔树

题意就不描述了。 主要说一下我的构造第一个串的过程 对给出的序列,比如5 1 3 2 7 8 4 6  给每个数按输入的顺序对应一个编号 5  1  3  2  7  8  4  6 1  2  3  4  5  6  7  8 然后我们手动建这颗二叉搜索树。观察它,...

2012-09-12 11:42:44

阅读数:3537

评论数:0

POJ 2932 扫描线思想

这个题确实太神奇了 大意就是给出了n个互不相交的圆。 各个圆之间有可能一个完全包含了另一个。这里包含就是一个圆整个都被另一个圆圈再里面。 现在求那些没有被包含的圆的序号。 数据量是4W 所以N2的肯定不行。 苦思冥想,不得其解 http://blog.sina....

2012-09-11 16:35:10

阅读数:1008

评论数:0

POJ 2778 AC自动机

这题还是挺经典的 首先的话,是建立自动机的过程。其实就是一个状态的转移,看一个字典树中的某子串加上一个字母是否会变成一个非法的串,然后都给标记起来。 最后就看有多少种状态,就建立多大的矩阵,对某种状态,如果加上一个字母后是合法的,就把表示状态可以转移。对应的矩阵中的位置就++ 然后就是矩阵乘...

2012-09-11 10:30:01

阅读数:894

评论数:0

HDU 4056 涂色 并查集

这题用线段树写的话会很恶心人 并且不是现场赛的话,HDU上内存有限制 所以就是用并查集来搞这种涂色问题,并且效率上也快一些 这种方法之前也接触过  详见从acmol的空间看的http://blog.acmol.com/?p=751 #include #include #inclu...

2012-09-05 13:41:51

阅读数:1150

评论数:0

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