自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AC_Arthur的专栏

Always challenge miracles!

  • 博客(15)
  • 收藏
  • 关注

原创 UVA 501 - Black Box(二分 + 树状数组 + 离散化)

题目链接:点击打开链接 思路: 该题虽然是求区间第k小, 但是实际上是不需要用到复杂的数据结构的, 我们只需要用树状数组来维护就行了, 因为以值作为树状数组下标, 那么这就是一个天然的单调区间, 用二分来查找就行了。  另外就是要离散化一下。 细节参见代码: #include #include #include #include #include #include #includ

2016-04-30 17:12:51 3691

原创 UVA 11997 - K Smallest Sums(多路归并)

题目链接:点击打开链接 思路:多路归并。 用贪心的规则, 我们先考虑两个数组的情况, 如果将两个数组从小到大排序, 那么我们先将数组a的所有元素加上数组b的最小的元素, 然后放入优先队列。 因为是事先排好序的, 所以其中肯定有一个是最小的,那么当这个数取出来之后, 如何保证队列头上时次小的呢? 我们发现, a数组的所有元素都用上了, 而且是和b数组中最小的数相加得到的, 所以, 当a[0]+b[

2016-04-27 21:24:14 4083 2

原创 HDU 5673 Robot(卡特兰数)

题目链接:点击打开链接 思路:卡特兰数可以用来求括号序列的个数, 用了组合数学的知识。 该题其实就等价于求一个括号序列的个数, 因为满足任意时刻, 向右的步数大于等于向左的步数。 但是该题还有停止不动的情况, 所以我们不妨枚举向右的步数, 然后求出括号序列的组合数, 然后剩下的就是停止不动的步数, 用组合数插空即可。 另外, 除法取模要取逆元, 我们可以线性预处理出所有逆元。 细节参见代码:

2016-04-23 20:21:22 3532

原创 HDU 4249 A Famous Equation(数位DP)

题目链接:点击打开链接 思路:用d[i][a][b][c][is]表示当前到了第i位, 三个数的i位分别是a,b,c, 是否有进位 , 的方法数。 细节参见代码: #include #include #include #include #include #include #include #include #include #include #include #include #includ

2016-04-21 15:11:34 1267

原创 HDU 4248 A Famous Stone Collector(DP + 组合数)

题目链接:点击打开链接 思路:DP + 组合数。 用d[i][j]表示前第i种颜色的石头, 已经用了j个的方法数, 每次枚举第i种石头放多少个, 假设放k个, 那么相当于从j个位置中选k个, 预处理组合数就行了。 细节参见代码: #include #include #include #include #include #include #include #include #include #

2016-04-20 21:37:12 1427

原创 HDU 2665 Kth number(划分树)

题目链接:点击打开链接 思路:划分树模板题。 细节参见代码: #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define Max(a,b) ((a)>(b)?(a):(

2016-04-15 16:35:17 4386

原创 ZOJ 2334 Monkey King(左偏树)

题目链接:点击打开链接 思路:左偏树模板题, 需要维护集合关系, 这个可以用并查集很方便的维护, 另外需要用一个数组来维护每个点所在的左偏树编号。 细节参见代码: #include #include #include #include #include #include #include #include #include #include #include #include #includ

2016-04-14 21:53:08 3812

原创 HDU 3047 Zjnu Stadium(带权并查集)

题目链接:点击打开链接 思路:注意, 行数是无限的, 因此, 两个人可以同时都相距另一个人x远(相距x列, 不在同一行),也就是说, 出现矛盾的唯一地方就是在于, 现在说的两个人相距的距离和之前说的矛盾。   那么怎么判断矛盾呢, 由于每个人之间有间接关联性, 因此, 我们需要处理一个集合的距离问题 , 所以用带权并查集就可以很好的处理。 细节参见代码: #include #include

2016-04-14 17:23:59 2843

原创 HDU 1281 棋盘游戏(二分图匹配)

题目链接:点击打开链接 思路:经典二分图建图模型, 对于每一个格子, 按照行标建一列, 列标建一列, 然后进行匹配即可, 然后尝试删除每条边, 再进行匹配看看有没有比原匹配小。  复杂度显然会超时。。 数据水了吧。 细节参见代码: #include #include #include #include #include #include #include #include #include

2016-04-13 17:36:16 3213

原创 POJ 3678 Katu Puzzle(2-SAT)

题目链接:点击打开链接 思路:2-SAT基础题,  关键是要理解好模板的含义,然后重点在建图。 在2-SAT中, 问题的关键是处理矛盾关系, 找到一个可行的解满足所有关系。  然后我们建图的时候, 连接一条有向边, 这条有向边可以理解成导出关系, a -> b。 那么我们可以由此来建立关系运算符, 以AND操作, 如果AND操作为真, 那么!a -> a, !b -> b, 代表, 如果a为假

2016-04-11 21:01:14 848

原创 HDU 4489 The King’s Ups and Downs(DP + 组合数)

题目链接:点击打开链接 思路:我们不妨把n个人的身高设为1~n, 然后从低到高插入队列。 那么将第i个人插入队列的时候就出现了问题, 插入的这个位置需要满足前面两个是高低, 后面两个是低高。 所以我们用DP来记录。 用d[i][0] 表示i个人的队列, 结尾为高低的方法数, d[i][1]表示开头为低高的方法数。  那么假设将第i个人插入, 插入的位置前面有j个人, 后面有i - 1 - j个

2016-04-11 16:44:28 1729 1

原创 HDU 4487 Maximum Random Walk(概率DP)

题目链接:点击打开链接 思路:概率DP, 用d[i][j][k]表示第i步, 走到j点, 走过的最大值为k的概率。  然后最后用概率乘以最右边走到的点就是期望, 期望相加就是答案。 细节参见代码: #include #include #include #include #include #include #include #include #include #include #inclu

2016-04-10 10:49:45 2607

原创 HDU 4283 You Are the One(区间DP)

题目链接:点击打开链接 思路: 经典区间DP, 用区间d[l][r]表示, 当前[l, r]区间的最优解。  那么对于当前区间, 左端点的行为决定了状态的转移, 那么编号l的人是否进小黑屋, 第几个进小黑屋呢。  我们再用一重循环枚举, l是[l, r]区间中第几个出场的, 那么他前面有多少人,贡献就增加几个a[l]。 假设, 是第k个出场的, 那么答案需要累加上它前边的人的贡献:(k - l)

2016-04-08 20:09:29 2440

原创 POJ 2446 Chessboard(二分图匹配)

题目链接:点击打开链接 题意:给你一个n*m的棋盘, 上面有一些洞洞,要求放置若干1*2的木板, 洞洞位置不能放置, 其他位置要全部覆盖, 任意一个格子不能同时覆盖两块木板, 求能否完全覆盖。 思路:二分图匹配。 相邻两个格子, 行数 + 列数 一定是一个奇数一个偶数, 由此将格子分成两派, 匹配一些即可。  可以用最大流, 但是匈牙利算法更快, 而且代码短。 细节参见代码: #inclu

2016-04-07 11:28:02 2507

原创 POJ 2513 Colored Sticks(hash + 欧拉道路)

题目链接:点击打开链接 题意:n个木棍, 两端有颜色, 相同颜色可以链接, 问你最终能否形成一条线段。 思路:典型的欧拉道路, 成立的条件是 1. 图联通 。 2. 度为奇数的点不能超过2个。 用map超时了, 可以用hash水过去。 细节参见代码: #include #include #include #include #include #include #include #includ

2016-04-05 22:32:39 1554

空空如也

空空如也

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

TA关注的人

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