自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 HDU 3436 Queue-jumpers

从一开始学离散化就对它没有半毛钱好感,感觉出这种题纯属恶心人。 可以将Top x全部取出来然后离散化,缩点。剩下的就是伸展了,不再赘述。 也有人拿线段树过,一直没有想明白. . . #include #include #include #include #include #include #include #include #include #pragma comment

2014-05-30 20:27:37 887

原创 HDU 1890 Robotic Sort 伸展树的区间反转与延迟标记

延迟标记像极了线段书,不再多说。 区间反转在树伸展到位之后,也变成了简单的递归交换左右儿子。 愈发感觉到伸展树简直太漂亮了,伸展操作更是诱惑到不行 ,总之数据结构太有魅力了。 比较简单,就直接上模板了。 #include #include #include #include #include #include #include #include #include #pr

2014-05-28 20:12:58 1005

原创 ZOJ 3765 Lights Splay Tree的几种基本操作

区间的查询,点修改,插入和删除。先姑且当作模板吧,略挫,慢慢补充,慢慢优化。 #include #include #include #include #include #include #include #include #include #pragma comment(linker, "/STACK:1024000000"); #define EPS (1e-8) #d

2014-05-27 19:51:38 1043

原创 初涉A*剪枝

挖坑防忘,天亮补题解。 #include #include #include #include #include #include #include #include #include #pragma comment(linker, "/STACK:1024000000"); #define EPS (1e-8) #define LL long long #define UL

2014-05-26 01:04:41 1634

原创 初涉Splay Tree

Splay Tree 支持的之中操作。 插入,删除,求前驱和后即,区间更新与查询。 先来一发Splay Tree最基础的操作——伸展。 #include #include #include #include #include #include #include #include #include #pragma comment(linker, "/STACK:102400

2014-05-24 20:02:13 1038

原创 HDU 1195 Open the Lock

双向BFS: 分别在 起点 和 终点同时进行BFS。 一般地,BFS随着层数的增加,状态数会越来越多,也就是状态数与层数呈正相关。如下图,: 若从两端同时进行BFS ,则有 显然减少的哪一些区域即为减掉的那些不必要的状态。 #include #include #include #include #include #include #include #include

2014-05-08 12:36:45 926

原创 HDU 1010 Tempter of Bone DFS + 奇偶剪枝

奇偶剪枝: 对于从起始点 s 到达 终点 e,走且只走 t 步的可达性问题的一种剪枝策略。 如下列矩阵 : 从任意 0 到达 任意 0,所需步数均为偶数,到达任意 1 ,均为奇数。反之亦然 所以有,若s走且只走 t 步可到达e,则必有t >= abs(s.x - e.x) + abs(s.y - e.y),且 (t&1) == ((abs(s.x - e.x) + abs(s.y -

2014-05-08 10:32:37 848

原创 UVALive 6525 Attacking rooks

将行中连续的' . '当作X集的一个点,列中连续的’ . ‘看成Y集中的一个点,然后把每一个’ . ‘看成一条边,连接Xi,Yj。 则问题转化成求此二分的最大匹配数。每找到一条匹配边的意义是找到了一个点放置一个,并且覆盖了所在的连续的行和列。 所以答案即为此二分图的最大匹配。 #include #include #include #include #include #inclu

2014-05-07 12:39:48 886

原创 二分图小结

此文意在整理二分图的各种变形。 HDU 1068 Girls and Boys 最基础的二分图匹配问题,简单的求最大匹配数。 HDU 1150 Machine Schedule 无向图 最小点集覆盖 = 最大匹配。 把作业看成边,把机器看成点。 无向图的最小点集覆盖是指存点集K,使得图中的所有边都与K中的某些点相连 ,且去除K任意一点就不再满足前述条件。 HD

2014-05-06 15:49:57 815

原创 HDU 4044 GeoDefense

设 t 为根节点到某一叶子节点路径上的权值和,则应让最小的 t 尽量的大。 坑点在于存在价格为零的商品。 一维倒序递推就失去了意义,无法保证每组选且只选一个。 另外可以选择不建立任何塔防,也就是说每个节点都多了一个price和power均为零的商品。 dp[s][k] 表示在 s 姐点投入 k 时所能取得的最大值。 #include #include #include #inclu

2014-05-06 11:18:06 1140

原创 HDU 4003 Find Metal Minaral 树上瞎搞分组背包

对于分组背包,每组选且只选一件商品的写法

2014-05-05 10:04:39 977

原创 POJ 2468 Apple Tree 树上瞎搞分组背包

昨晚Debug了好久始终找不出哪里错了,今早再一看发现自己已荣升逗比Beta 2.0 Version. 个人感觉此题为HDU 4003 的弱化版。 把每棵子树都看成一类商品,在每类商品中至多选一件。则问题转化为最基本的分组背包问题。 dp[s][c][k] c == 1时,表示在s结点不返回时走K的最大收益,c == 0时,表示在s结点重新返回时走k步的最大收益。 可以dfs从底到顶更新d

2014-05-05 09:51:49 1322

原创 HDU 3033 I love sneakers! 分组背包

我是个逗比。。。真心不是搞算法的料 不太中规中矩的分组背包,分组至少选一件商品。dp[i][j] 可以由当前dp[i-1][j-c] 和 dp[ i ][j-c]更新得到。 #include #include #include #include #include #include #include #include #include #pragma comment(link

2014-05-04 21:08:12 756

原创 Google Code Jam Round1B B题

一眼就看出这是个数位DP了好吗。

2014-05-04 03:30:29 832

原创 哈夫曼树 POJ 3253 Fence Repair

竟然做过原题,一眼看上去竟然没感觉。。。 哈夫曼树定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 1、路径和路径长度 在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规

2014-05-01 14:08:46 1050

原创 HDU 2886 Lou 1 Zhuang

思维好重要。。 对于n+m == k , 当n == m || abs(n-m) == 1 时n*m取得最大值。 则对于k分解成若干个数,则最后有若干个3和若干个2。 又有,三个2换成两个3,和不变积增大。所以最后最多之会有两个2,剩下的由3组成。 则题目变成了 求3^m。 #include #include #include #include #include #includ

2014-05-01 00:41:44 1454 3

空空如也

空空如也

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

TA关注的人

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