
HDU
文章平均质量分 77
huangshenno1
这个作者很懒,什么都没留下…
展开
-
HDU3068 最长回文
O(n)求最长回文串用辅助数组p记录以每个字符为中心得最长回文串的信息。在字符间插入'#',可以奇偶两种情况同时考虑。具体算法部分参考#include #include #include #include #include #include #include #include #include #include #include #include原创 2013-07-20 18:15:42 · 483 阅读 · 0 评论 -
HDU4035 Maze
神一般的概率DP基本的状态转移方程:dp[i] = k[i]*dp[1] + e[i]*0 + (1-k[i]-e[i])/d[i]* ( ∑( dp[j]+1 ); (i, j相连)把原图看成一棵树,可以把每一项的状态转移方程化简成只与其父节点有关。然后写出来的话会比较复杂= =我说的可能不够清楚,详见kuangbin大神的http://www.cnblogs原创 2013-10-08 23:02:03 · 520 阅读 · 0 评论 -
HDU4089 Activation
概率DP状态转移方程:dp[i][1] = p1*dp[i][1] + dp[i][i]*p2 + p4dp[i][j] = p1*dp[i][j] + dp[i][j-1]*p2 + dp[i-1][j-1]*p3+p4 (jdp[i][j] = p1*dp[i][j] + dp[i][j-1]*p2 + dp[i-1][j-1]*p3 (j>k)一层一层的处理,原创 2013-10-07 16:22:44 · 534 阅读 · 0 评论 -
HDU4752 Polygon
其实从算法上并不是太难,但是细节很多,时间很紧,精度很阴险,我就不多吐槽了= =基本的结题思路就是先求出曲线和多边形的所有交点,将交点排序,然后求交点之间在多边形内部的长度和。我一开始在排序后对每两个相邻交点计算他们的曲线中点在不在多边形内,结果O(n^2)肯定TLE= =然后封哥指点说在多边形内的线段是交替出现的,然后我就去改啊,然后就TLE了= =(怎么还是TLE?原创 2013-09-21 20:40:34 · 1121 阅读 · 0 评论 -
HDU3716 Jenga
其实是水题啊,不过就是没人做= =概率+记忆化搜索在叠叠乐基础规则之上,已知叠叠乐中每一层只有以上四种状态是稳定的,并且在总高度为n时,积木移动成功的概率为p = b - n * d。题意就是求在最优策略下,A的胜率。(具体一点请自行读题)如图,只有A和C两个状态是有后继状态的,所以说我们只需要记录这两个状态的个数就行了。(所以题目中的概率才用b和d表示么=原创 2013-10-02 11:49:49 · 807 阅读 · 0 评论 -
HDU4745 Two Rabbits
把模型抽象出来,其实就是在一个环中找一个最长的子环,并且这个子环是轴对称的。从对称轴上一点出发,向两个方向运动可以正好满足题意,并且可以证明如果抽选择的子环不是对称的话,其一定不是最长的。倍长原序列,在新序列中求所有区间的最长回文子序列长度。答案就等于所有长度为n的区间中最长回文的长度 和 所有长度为n-1的区间中最长回文的长度+1(在轴上的两点可不同) 中最大的那个。原创 2013-09-15 22:05:35 · 1253 阅读 · 0 评论 -
HDU1890 Robotic Sort
我不是code的生产者,我只是code的搬运工。(感谢cxlove世界冠军提供参考代码,我已经成功从中提取了模板= =)好吧,其实这个除了上一题的模板之外完全是我自己写的,连那个remove函数都是现编的= =要注意的是数据可能有重复,需要处理一下。splay中使用rotate函数,用时296MS:#include #include #include原创 2013-08-30 01:09:47 · 700 阅读 · 0 评论 -
HDU4682 The Happy Triangles
二分法的好题,推荐!题目见http://acm.hdu.edu.cn/showproblem.php?pid=4682解法需要先证明两个结论,这两个结论都是基于最优策略的,可以证明若不满足这两个条件中的任一个都可以通过调整使其变得更优。1. 每个三角形都应该把最短边与底线重合。2. 存在重叠时,所有三角形之间的交点以及三角形与左右两条竖线的交点应该在同一水平线上。(证明原创 2013-08-17 21:45:23 · 1081 阅读 · 0 评论 -
HDU4347 The Closest M Points
n维空间最近m点的问题,应该算是经典模型了。n维:采用KD树解决,轮流沿着各个维度把点分成两部分(还有一种思路是把跨度最大的那一维度分成两部分,这一种方法是更优的,但是实现起来稍微复杂一点点。而均摊下来两种方法的复杂度相同,所以这里只采用了轮流的建树法),建树即可。m点:最近点和最近m点的问题是一样的。#include #include #include原创 2013-08-28 18:45:51 · 1041 阅读 · 0 评论 -
HDU4675 GCD of Sequence
设g(n)为最大公约数等于n的方案数(即本题答案),f(d)为公约数含有d的方案数。则有关系:f(d) = sigma(d|n, g(n))本题关键即在于如何求f(d)。如果没有(恰好K个数与序列a中不同)这个条件的话,那么函数f(d)就很好求,f(d) = [M/d] ^ N但是本题有这个条件(废话),所以我们需要对函数f的求法做一点改进。先用O(n sqrt n)的原创 2013-08-14 01:12:35 · 759 阅读 · 0 评论 -
HDU4576 Robot
很经典的矩阵快速幂题。注意,如果裸写的话时间复杂度会是O(n^4*logm),显然不行。所以,我写这篇题解(?明明就是一个tip一样的东西= =)就是想说:1. 对称矩阵的乘积还是对称矩阵。(重点是下一个↓↓↓)2. 这个类似于三对角矩阵一样的矩阵,它的每一行都可由前一行往右平移一位得到,所以只用存储一行就可以存储整个矩阵,并且也只用计算一行就可以得到整个矩阵。原创 2013-08-11 02:31:59 · 1326 阅读 · 0 评论 -
HDU4697 Convex hull
X姐说没那么难写。但是A完这题,我觉得我可以去死了= =该死的精度问题。先去睡觉,题解明天再写。#pragma comment(linker,"/STACK:102400000,102400000")#include #include #include #include #include #include #include #include #includ原创 2013-08-23 02:30:10 · 768 阅读 · 0 评论 -
HDU4637 Rain on your Fat brother
任意门: http://acm.hdu.edu.cn/showproblem.php?pid=4637假设所有雨点都不动,那么可以看做人物向着左上角匀速移动。求出人物运动的轨迹(一条线段)与所有雨滴的交线段,然后求线段并就可以了。题目其实很简单,但是很烦啊,记录一下代码。#pragma comment(linker,"/STACK:102400000,102原创 2013-08-20 11:19:10 · 540 阅读 · 0 评论 -
HDU4633 Who's Aunt Zhang
根据Burnside引理,等价类数目等于所有 f 的不动点数目 C ( f ) 的平均值。本题模型共有4大类置换,共24种:1. 不做任何旋转 K ^ (54 + 12 + 8)2. 绕相对面中心的轴转1) 90度 K ^ (15 + 3 + 2) * 31) 180度 K ^ (28 + 6 + 4) * 31) 270度 K ^ (15 + 3 + 2)原创 2013-08-01 21:55:24 · 984 阅读 · 0 评论 -
HDU4609 3-idiots
多校那时候我还年轻,没能理解FFT,只知道它能够进行信号在时域和频域上的转换。现在学习了FFT在多项式乘法上的应用,感觉对FFT的理解更深了一层。要搞懂FFT,首先要理解卷积。先抄一下wikiped原创 2013-07-30 17:45:32 · 721 阅读 · 0 评论 -
HDU2795 Billboard
线段树水题,需要稍微思考一下。手写线段树感觉好爽!!!线段树好神!!!#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #incl原创 2013-09-25 22:52:12 · 489 阅读 · 0 评论