自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一点一点的进步

  • 博客(18)
  • 资源 (4)
  • 收藏
  • 关注

原创 POJ 2697 字典树 + bfs

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

2012-09-30 16:54:39 1799

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

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

2012-09-25 15:31:58 1843

原创 HDU 4419 矩形面积并

这题貌似想法挺简单的。跟普通的矩形并变形一下把三种颜色分别对应一个二进制位,那么用十进制数表示 R, G, B, RG, RB, GB, RGB就是 1,2,4,3,5,6,7然后在pushup操作中把这些东西更新一下就行了注意,普通矩形并是一条线段表示进入矩形,另一条表示出了矩形,那么本题中就对三种颜色分别记录了当时比赛的时候写的比较蛋疼。完全是码农写法。其实完全可以写的

2012-09-24 01:40:31 1113

原创 HDU 4400 Mines

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

2012-09-22 21:49:46 2798 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[i]中值最大的下标为k设x为[j + 1,k]的任意一个下标,则a[x],a[x+1],..

2012-09-19 16:59:11 4142

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

题目大意就是求重复次数最多的连续重复子串。例如abababc 答案就是ababab  因为ab连续出现的次数最多并且题目还要求输出字典序最小的比如abababcdcdcd ababab和cdcdcd都符合要求但是ababab字典序小具体做法参见罗穗骞的论文穷举子串的长度L,然后求长度为L的子串最多出现几次首先连续出现一次是肯定的,所以只考虑出现两次及以上的情况

2012-09-17 17:38:34 1349

原创 POJ 3690 Constellations 简单hash

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

2012-09-16 10:53:47 2335

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

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

2012-09-16 10:42:41 2685 1

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

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

2012-09-16 10:36:29 3019

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

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

2012-09-16 10:19:04 3155

原创 POJ 2946 字符串hash + BFS

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

2012-09-14 18:53:46 1325

原创 HDU 3758 Factorial Simplification 数论

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

2012-09-14 00:42:51 1260

原创 HDU 3760 Ideal Path 最短路+BFS

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

2012-09-14 00:36:23 1810

原创 HDU 3756 三分法求极值

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

2012-09-14 00:23:17 1547

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

题意就不描述了。 主要说一下我的构造第一个串的过程对给出的序列,比如5 1 3 2 7 8 4 6 给每个数按输入的顺序对应一个编号5  1  3  2  7  8  4  61  2  3  4  5  6  7  8然后我们手动建这颗二叉搜索树。观察它,可以发现,每个结点的编号是满足堆的性质。也就是如果把这个编号当做每个结点的第二个关键字,这就是

2012-09-12 11:42:44 3743

原创 POJ 2932 扫描线思想

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

2012-09-11 16:35:10 1209

原创 POJ 2778 AC自动机

这题还是挺经典的首先的话,是建立自动机的过程。其实就是一个状态的转移,看一个字典树中的某子串加上一个字母是否会变成一个非法的串,然后都给标记起来。最后就看有多少种状态,就建立多大的矩阵,对某种状态,如果加上一个字母后是合法的,就把表示状态可以转移。对应的矩阵中的位置就++然后就是矩阵乘了,乘了k次后的矩阵x[i][j] 就表示从i状态到j状态路径转移长度为k的个数 ,那最后的结果就是从

2012-09-11 10:30:01 995

原创 HDU 4056 涂色 并查集

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

2012-09-05 13:41:51 1383

归并排序实现

使用C++实现了归并排序,有注释,简明易懂

2013-06-11

堆排序实现

使用C++实现了堆排序,有注释,简明易懂

2013-06-11

插入排序实现

使用C++实现了插入排序,有注释,简明易懂

2013-06-11

java 俄罗斯方块源码

代码可直接运行, 主要功能有基本的俄罗斯方块,加速,开始,暂停等

2011-12-19

空空如也

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

TA关注的人

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