上一页 1 ··· 6 7 8 9 10 11 12 13 14 15 下一页
摘要: 其实真的没读懂这题是什么意思,读了好几遍题怎么都弄不懂它到底想让求什么的,最后还是查了解题报告,但是他们讲的题意仍是不明白,直到看了代码才似乎明白点他的意思,唉,这个英语啊!我理解的题意:将每一个Pie都要平均分成x份,所有的x加起来要大于等于朋友数f。思路:二分,将最大的一份pie平均分f份,这当然包括他自己,作为二分查找的下限,将所有pie平均分成f份,作为二分查找的上限。代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include 阅读全文
posted @ 2012-06-28 11:43 Misty_1 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 这些天忙着期末考试,很久没做题了,昨天刷了刷一些水题,练练有点生疏的手,呵呵~,今天重新开始训练计划。题意:在长度为len的线段上有N个点,各处每个点到起点的距离,让及衣橱M个点,使所有点中,两点之间最小的距离尽量大。思路:读完题后,我也以为实用贪心做的,但是后来看了discuss里讨论的都是用二分,然后就改用二分做了。先找出两点之间最小的距离作为二分查找的下限,线段长为上限,然后二分查找最适合的长度。代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostrea 阅读全文
posted @ 2012-06-28 10:13 Misty_1 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 呃,一看到关于字符串的题就有点发怵,也不是完全因为字符串,而是对于处理字符串部署很擅长,偶尔错个小地方就要检查上半天,又是还不知道怎么错的,影响心情啊!!这题题意是:给出一个字符串,要你求出至少添加多少个字符可以是这个串成为回文穿串。大体思路:还是简单dp, dp[i][j] 表示从i到j至少要添加字符个数。转移方程有两种情况,一是如果str[i]== str[j] 的话,则dp[i][j]= dp[i+1][j-1] ;否则不想等的话,dp[i][j] = min ( dp[i+1][j] , dp[i][j-1] ) + 1 ;代码:#include <stdio.h>#inc 阅读全文
posted @ 2012-06-11 17:24 Misty_1 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 一道简单dp题,自己感觉这类dp题都很简单,只要找到一种状态,从小往大了推就行了,可关键是木读懂题啊。。。。。。开始读的时候,没认真理解where each soldier can see by looking lengthwise the line at least one of the line's extremity (left or right)这句话,结果理解成从一个用n个元素的数组中抽出几个数,使数组非递减或非递增排列,呃~自然WA的很惨,然后,看了题解,发现我错了,它是让找一个先上升在下降的最长序列,于是开始做,呃~有WA,因为漏掉了一种情况,1 , 2 , 3 , 4 阅读全文
posted @ 2012-06-10 10:48 Misty_1 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 最近在学习背包九讲,呃,现在刚看到多重背包问题,还是有点慢啊。这题是典型的多重背包问题,题意是,给你n中面值不同的纸币,每种面值为c,每种有n[i]张,给你一定的数额,问有这些纸币能组合出小于等于所给面值的最大钱数。但是题目中给的数据范围有点大,如果按基本的多重背包来做会TLE,看了《背包九讲》中利用二进制思想的优化,没看懂伪代码,搜了个代码慢慢研究,终于有点明白了,不过还是不明白为什么要按1 , 2, 4, ……2^(k-1) , n - 2^k 这样确定系数,呃,还是慢慢想吧~~代码:#include <stdio.h>#include <stdlib.h>#inc 阅读全文
posted @ 2012-06-07 20:02 Misty_1 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一架天平,C个挂钩位置和G个砝码,让你将这G个砝码全部用上,求有多少种方法使得天平平衡。思路:读完题后根本没有思路,如果让我自己想,我绝不会想到用dp做,但是这题是在背包问题的练习题里的,并且刚刚看完0-1背包,对dp有了一点理解,所以不难想到用dp做。可是,最后却在数组范围上卡了一下,想不明白为什么要开到15000,想了两天后,终于明白,力矩等于力臂*重量,而砝码的个数最多为20个,力臂最长为15,要使天平平衡的左右两边的重量为15*20*20 =7500,所以要开15000;代码:#include <stdio.h>#include <string.h># 阅读全文
posted @ 2012-06-05 20:11 Misty_1 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 最近在研究dp类的问题,正好前几天刷北航的时候看到了这题,当时觉得没什么,最长公共子序列在大一讲dp的时候就当做经典例题讲过,但是题目中要求用尽量小的空间,后来看0-1背包的时候看到讲0-1背包的空间优化,突然就想到这题了,于是拿来练练。。。。#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>#include <queue>#define maxx 1002using namespac 阅读全文
posted @ 2012-06-03 20:59 Misty_1 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题目意思:给你若干棵树,问你每种树出现的概率;解题思路:(1)trie树 ,不过这题的输出很让人纠结,它是按ACSII表的顺序输出的,本以为大小写字母再加上一个空格,开53个数组就够了,但是不幸的WA了, 后来看了别人的解题报告,直接开到了95,改了一下就过了~(2)stl的map容器。不过这个很慢,可以过,但是没法很trie树的比,一个700+ms,一个3000+ms。呃,第一次用map,权当练练手。trie树:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iost 阅读全文
posted @ 2012-05-31 17:49 Misty_1 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 早上,脑袋有点卡,所以找了这道水题做做:http://www.bianchengla.com/oj/34/practise/problem?id=1731刚读完题是感觉用hash比较好找,可是后来发现不是这么简单的,价格范围太大,开不了数组,而用二分查找的话,价格中又有重复,有人提示用二叉查找树,一想也对,于是顺便又复习了一下二叉树。代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <iostream>#include <algorithm>#inc 阅读全文
posted @ 2012-05-31 15:30 Misty_1 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 先说点题外话,昨天看了cq学长写的日志,他说我们的语言表达能力太弱,我觉得很对,以前写解题报告的时候,虽然知道怎么做出来的,可是就是无法用语言清晰的表达出来,有时嫌麻烦就直接粘了别人的一些话了说明,一篇报告总是弄的前言不搭后语的,其实语言表达能力也很重要。所以,以后会让自己尽量少的引用别人的话,尽量用自己的语言表达出想表达的意思。现在再来说说这道题,其实是一道很水的题,不过题意很容易让人误解,我就被误解了~~这题是用到了堆,不过如果我告诉你这题其实就是让你求第K小数的话,相信你不用优先队列也一样可以求出来。解题思路:用分治法,是大顶堆的堆顶元素始终小于小顶堆的堆顶元素,这样的话大顶堆中的所有元 阅读全文
posted @ 2012-05-28 21:33 Misty_1 阅读(199) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 15 下一页