HDU
文章平均质量分 55
kay_zhyu
这个作者很懒,什么都没留下…
展开
-
HDU1160——FatMouse's Speed
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1160 题目分析:输入一组体重和速度的数据,找到尽可能长的序列,满足体重严格递增,速度严格递减。 解题思路:先按体重升序排列,然后在排列后的数据中找到最长的递减的序列。这里由于不仅仅是要你输出序列的长度,还要输出最长的序列是由哪些数据组成。这样在DP的同时,需要记录每一个最优解得到的过程。 其实这原创 2013-03-28 14:15:08 · 669 阅读 · 0 评论 -
杭电ACM2147——kiki' game
Problem Description:http://acm.hdu.edu.cn/showproblem.php?pid=2147 Recently kiki has nothing to do. While she is bored, an idea appears in his mind, she just playes the checkerboard game.The size of原创 2013-05-01 15:26:33 · 1117 阅读 · 0 评论 -
HDU1029——Ignatius and the Princess IV
Ignatius and the Princess IV Problem Description:http://acm.hdu.edu.cn/showproblem.php?pid=1029 "OK, you are not too bad, em... But you can never pass the next test." feng5166 says. "I will tel原创 2013-03-27 20:03:39 · 1036 阅读 · 0 评论 -
hdu1290 献给杭电五十周年校庆的礼物
资料来源:http://blog.csdn.net/qq775445624/article/details/6708229 博主总结得太好了,所以俺一个字都没改。 这道题要一步一步来的: (1) n条直线最多分平面问题 题目大致如:n条直线,最多可以把平面分为多少个区域。 析:可能你以前就见过这题目,这充其量是一道初中的思考题。但一个类型的题目还是从简单的入手,才容易发现规律。当有n-1转载 2013-03-26 18:09:49 · 538 阅读 · 0 评论 -
寻找数组中和最大的子序列
题目连接:http://acm.hdu.edu.cn/diy/contest_showproblem.php?pid=1001&cid=18563&hide=0 题目陷阱: 1、这道题需要考虑到如果数组中的数都是负数。开始没有考虑到,结果就wrong answer了。 2、AC这个事情,有时候明明觉得自己的代码是对的,就是不能A,好痛苦啊。有时间的时候再好好琢磨吧。先放这里。 参考代码:原创 2013-03-24 09:52:10 · 745 阅读 · 0 评论 -
面试100题系列之8单词反转 VS HDU1062——text reverse
给一个句子,将句子中的单词反转。 思路:先将句子整体反转,再将单词一个个进行反转。 *如果该字符是空格,前一个字符是单词,那么就在此处反转 *如果该字符是单词,其前一个字符是空格,则记录下单词开始的位置 特殊情况:句子后面是一串空格,输出的时候可能不想句子前面有空格,所以在反转之前需要先将空格滤去。 #include #include char a[100]; void I原创 2013-04-07 18:49:34 · 913 阅读 · 0 评论 -
HDU1024——Max Sum Plus Plus(DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024 注意:这道题需要考虑大数的情况,其实最大也就是10^6*32767,所以__int64足够了。解决的思路是动态规划,这部分其实是我的弱点,所以多多训练。 分析: 当数组中第i个元素进来的时候,要么自成一组,要么就是加到原来的第j组的末尾。因为假设在第i-1个元素的时候有断开,那如果第i个元原创 2013-03-27 19:23:56 · 722 阅读 · 0 评论 -
杭电ACM1020 VS 1039
1020题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1020 1039题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1039 其实两个题是类似的,都是给一个字符串,检测连续的重复字符的子串。不过1039的附加条件更多 //1020的代码 #include #include char s原创 2013-04-10 18:55:11 · 898 阅读 · 0 评论 -
HDU1284——钱币兑换问题
这种母函数的见多了,也就简单了,不外乎就是一个多项式展开,我怎么恍惚中觉得我发过一篇类似的博客的,但是再回头去找的时候就没啦! 算了,下次再说吧。赶紧抢饭去咯! 题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1284 参考代码: #include #define M 32768 void main() { int c1[M +原创 2013-03-26 16:57:44 · 979 阅读 · 0 评论 -
杭电ACM1087——Super Jumping! Jumping! Jumping!
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 题目分析:其实就是就最长递增子序列的变种,将输出改成最大的递增子序列的和 #include #define M 10010 int a[M]; int dp[M]; int LIS(int nLen) { //a是数据数组 //dp是递推数组 //nLen是数组a的长度原创 2013-03-24 21:36:43 · 819 阅读 · 0 评论 -
杭电1143——Tri Tiling(递推求解)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1143 题目分析: 可能自己的分析能力还是不够,每次做这种递推题的时候,都要分析半天。其实想起来,与卡特兰数的推导的思想是完全一致的。这个需要慢慢的体会。先说这道题。 很明显,如果输入的n是奇数,奇数的平方仍然是奇数,不可能用偶数的面积填满奇数的面积,所以结果是0。 下面考虑输入是偶数的情况,假原创 2013-03-26 09:40:32 · 984 阅读 · 0 评论 -
HDU1033 Buy the Ticket(卡特兰 大数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1133 怎么说呢,做这道题还是感觉很艰难的,最开始我一直没有想明白,到底是怎么排列的。虽然知道是用卡特兰数,但是感觉自己的推理能力还是有限,搞了一下午,终于弄好了。 大概的理解是这样的:跟数的进栈出栈是一样的原理,不过这里用位来分析,可能更直观。假设50的表示为0,100表示为1.一共有m个0和n个原创 2013-03-25 19:51:19 · 1036 阅读 · 0 评论 -
HDU1023——Train Problem II
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1023 解题思路:其实就是N个数的出栈入栈。 这道题的难点就是大数运算。跟另外一篇博客一样的思想。 链接:http://blog.csdn.net/kay_zhyu/article/details/8718576 #include #include #define N 101 char f[原创 2013-03-28 18:57:34 · 563 阅读 · 0 评论 -
HDU1016——Prime Ring Problem
题目链接:http://acm.hdu.edu.cn/status.php?user=hqucst&pid=1016&status=5 题目分析:把n个数排成一圈,然后两两相加为素数。由于需要把所有的情况都找出来,所以这里用递归来做,把所有情况遍历一遍。递归的思想还需要好好领悟。我记得上学期有一段时间研究了一阵,有那么一点点感觉,但不是很深刻。 whatever,今天解决了一个困扰我很久的问题原创 2013-03-28 21:08:41 · 601 阅读 · 0 评论 -
HDU1026——Ignatius and the Princess I(BFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1026 典型的广度优先搜索,其实这个我已经写了很多遍了,但是写这个代码的时候还是花了我一上午的时间,为什么呢,以为我写代码的时候把中间最优值更新的部分的map[nx][ny]敲成了map[x][y],血淋淋的教训啊,尼玛,很熟练的写完了,调试了很久都觉得没错了。唉,所以说还有要细心一点啊。这种输入错误原创 2013-03-29 14:52:53 · 700 阅读 · 0 评论 -
n个人n个座位,求不能坐在自己座位上种数
如果一共有i个人,则第i个人的位置对于其他i-1个人都是合法的,则这i-1个人都可能坐在i的位置上。如果第i个人坐在坐他位置的人的位置上,则将这两个人与其他的i-2个人分开了,有f[i-2]种;如果第i个人不坐在坐他位置的人的位置上,则剩下i-1个人不能坐自己的位置,则有f[i-1]种。 所以递推式为:f[i]=(i-1)*(f[i-1]+f[i-2]); 腾讯2013.3.30号的决赛第原创 2013-04-04 22:28:15 · 7263 阅读 · 0 评论 -
编程之美资格赛第二题
题目列表 > 长方形 时间限制: 1000ms 内存限制: 256MB 描述 在 N × M 的网格上,放 K 枚石子,每个石子都只能放在网格的交叉点上。问在最优的摆放方式下,最多能找到多少四边平行于坐标轴的长方形,它的四个角上都恰好放着一枚石子。 输入 输入文件包含多组测试数据。 第一行,给出一个整数T,为数据组数。接下来依次给出每组测试数据。 每组数据为三个用空格隔开原创 2013-04-06 17:08:44 · 2560 阅读 · 8 评论 -
编程之美大赛资格赛第一题
时间限制: 1000ms 内存限制: 256MB 描述 Alice和Bob还有其他几位好朋友在一起玩传话游戏。这个游戏是这样进行的:首先,所有游戏者按顺序站成一排,Alice站第一位,Bob站最后一位。然后,Alice想一句话悄悄告诉第二位游戏者,第二位游戏者又悄悄地告诉第三位,第三位又告诉第四位……以此类推,直到倒数第二位告诉Bob。两位游戏者在传话中,不能让其他人听到,也不能使用肢体动原创 2013-04-06 17:07:31 · 1439 阅读 · 0 评论 -
HDU1159——Common Subsequence
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1159 分析:用一个二维的表格来记录以前的最优值,递推关系式为: 当前字符str1[i] == str2[j],dp[i][j] = dp[i -1][j-1] + 1; 否则,dp[i][j] = max(dp[i -1][j] ,dp[i][j -1]); 参考代码: #include #原创 2013-03-28 13:07:48 · 533 阅读 · 0 评论 -
HDU1114——Piggy Bank
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 懒了,就不想贴题了。 典型的DP:其实就是找出各种组合的最小值,如果这些硬币的所有组合都不能组成F-E,则这种情况就是不可能发生的。 当一种硬币进来,重量为w,面额为p。那么dp[F-E] = min(dp[F-E],dp[F-E-w] + p);递推,一步步更新DP就可以了。 #inc原创 2013-03-28 10:27:32 · 755 阅读 · 0 评论 -
HDU1072——Nightmare(BFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1072 题目分析,这道题还是有点小难得,我拿到题还是思考了一会的。其实这道题就是说初始截止时间是6s,如果能在截止时间到0之前到达终点(这里个人觉得题目没有表述得很清楚,开始我默认的是如果在0时刻到达终点也算是可以的,结果提交之后就wrong answer了,改成到达终点的时候截止时间必须大于0就可以原创 2013-03-29 16:24:24 · 727 阅读 · 0 评论