- 博客(5)
- 资源 (1)
- 收藏
- 关注
原创 回文字符串小结(回文串判定+最长回文子序列)
定义:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。 回文串判定 例1:hdu2029 题意:请写一个程序判断读入的字符串是否是“回文”。 思路:回文串最基本的判定法是将一个字符串扫一遍,判断第i个字符和倒数第i个字符是否相同,不相同则返回false。 也可以用栈来实现,复杂度均为O(n)。 code:/
2015-05-29 14:15:41 2668
原创 CodeForces 71C Round Table Knights(数学+枚举)
题目戳这里 题意:圆上有n个点均匀分布,其中点的状态有0或1两种情况,现在告诉你所有点的状态,问:能否由状态为1的点组成正多边形。 思路:公式推理+枚举。 当n=3时,我们需要验证是否有正三边形(三角形); 当n=6时,我们需要验证是否有正六边形与正三角形; 当n=9时,我们需要验证是否有正九边形与正三角形; …… 可以发现只要检测n的大于3的因数作为边数
2015-05-17 22:07:25 889
原创 hdu4000 Fruit Ninja(树状数组)
题目戳这里题意:对1~n的一个排列,求所有的i<j<k且a[i]<a[k]<a[j]的个数。思路: 全局思路在于:小大中组合个数 = 小(大)(大)组合个数 - 小中大组合个数 小(大)(大)的意思是第一个元素比后两个元素要小的组合。 对于第i个数组元素,qian表示在i之前有几个比a[i]要小,hou表示i之后有几个比a[i]要大。 则小中大 组合个数= qian * hou; 小(大)
2015-05-16 01:16:41 509
原创 hdu 4015 Mario and Mushrooms(组合数学)
题目戳这里题意:Mario遇到了两种蘑菇:好蘑菇提升自身一点hp,坏蘑菇减少自身m点hp,当遇到一个蘑菇后Marion的hp小于或等于0时,Marion死亡。已知坏蘑菇有k个,好蘑菇k*m+1个(换句话说,生还后hp=1)蘑菇随机排列,遇到蘑菇的过程是一个接一个,输入k与m,求Marion生还概率。思路:大概是靠脑洞(卒。。 我们可以明确一件事,任一合法序列或着说生还条件,必然前k+1个是好蘑菇,
2015-05-15 22:23:06 861 1
原创 hdu4145 Cover The Enemy(贪心+枚举)
题意:已知两座炮塔的坐标,以及n个士兵的坐标,以两座炮塔A,B为圆心,R1,R2为半径,可覆盖所有士兵的坐标,求R1^2+R2^2最小值。 思路: 这道题开始的思路是: 枚举每个敌人,比较它到2个炮塔的距离,如果距离A近,则把这个距离与上个距离A近的敌人的距离比较,取较大者。反之同理处理B。这样就得到A和B炮的半径,进而得到答案。 但是这样是错的。若AB距离为2
2015-05-14 23:45:20 715
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人