Visitors hit counter dreamweaver
上一页 1 2 3 4 5 6 7 8 9 10 ··· 26 下一页
摘要: 问题描述乔治拿来一组等长的木棒,将它们随机地裁断,使得每一节木棒的长度都不超过50 个长度单位。然后他又想把这些木棒恢复到裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棒的长度都用大于零的整数表示。输入数据由多个案例组成,每个案例包括两行。第一行是一个不超过64 的整数,表示裁截之后共有多少节木棒。第二行是经过裁截后,所得到的各节木棒的长度。在最后一个案例之后,是零。输出要求为每个案例,分别输出木棒的可能最小长度,每个案例占一行。输入样例95 2 1 5 2 1 5 2 141 2 3 40输出样例65 一看到这道题目感觉. 阅读全文
posted @ 2013-05-19 19:22 Jason Damon 阅读(2417) 评论(0) 推荐(0) 编辑
摘要: 八皇后这个典的问题,是每个真正程序员必须经历过的。这也是我第二次来解决这个问题了,第一次应该是学数据结构那时候吧。这次写起来顺利多了,基本没遇到什么卡壳的地方。递归+回溯。问题描述会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8 个皇后放在棋盘上(有8 * 8 个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。 对于某个满足要求的8 皇后的摆放方法,定义一个皇后串a 与之对应,即a=b1b2...b8,其中bi 为相应摆法中第i 行皇后所处的列数。已经知道8 皇后问题一共有92 组解(即92 个不同的皇后串)。给出一个数b,要求输出第b 个串。串的比.. 阅读全文
posted @ 2013-05-18 18:55 Jason Damon 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 问题描述(其实就是POJ的1979,那上面的测试数据更多)有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入数据包括多个数据集合。每个数据集合的第一行是两个整数W 和H,分别表示x 方向和y 方向瓷砖的数量。W 和H 都不超过20。在接下来的H 行中,每行包括W 个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘.’:黑色的瓷砖;2)‘#’:白色的瓷砖;3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合中唯一出现一次。当在一行中读入的是两个零时,表示输入结束。输 阅读全文
posted @ 2013-05-17 22:14 Jason Damon 阅读(1451) 评论(0) 推荐(0) 编辑
摘要: 问题描述把 M 个同样的苹果放在N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K 表示)注意:5,1,1 和1,5,1 是同一种分法。输入数据第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含两个整数M 和N,以空格分开。1<=M,N<=10。输出要求对输入的每组数据M 和N,用一行输出相应的K。输入样例17 3输出样例8我的思路:因为题目是用递归做的。我就想如何可以原来问题分解了一个更小的问题,又因为盘子都一样的。先考虑第一个盘子放苹果的情况,然后递归的考虑后面的各种情况,为了必要重复,我还设定了他们放苹果的数量是递减的。同时 阅读全文
posted @ 2013-05-15 23:13 Jason Damon 阅读(807) 评论(0) 推荐(0) 编辑
摘要: 最近一周,天天在弄毕业设计的事。边工作边写论文。因为已经有成果了,写起来自然轻松了许多。如今都写好了,也排版好了。就等着修改修改咯。改个十次八次应该也就差不多了,老付是这么说的,做好最坏的打算。现在论文写得差不多了,终于有时间来编编程。每天晚上多充充电! 阅读全文
posted @ 2013-05-15 22:11 Jason Damon 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 问题描述逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3 的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4 的逆波兰表示法为* + 2 3 4。本题求解逆波兰表达式的值,其中运算符包括 + - * / 四个。输入数据输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数输出要求输出为一行,表达式的值。输入样例* + 11.0 12.0 + 24.0 35.0输出样例1357.000000 一看到逆波兰式,首先想到的是用栈的方式来解决。的确能解决,但是一个栈怎么写了?基本结构是什么?忘. 阅读全文
posted @ 2013-05-06 21:21 Jason Damon 阅读(871) 评论(0) 推荐(0) 编辑
摘要: 用递归的方法来做是一道很简单的题,但是如果用普通的方法的话会比较繁杂,所以遇到问题还是多想想。如上图所示,由正整数1, 2, 3, ...组成了一棵无限大的二叉树。从某一个结点到根结点(编号是1 的结点)都有一条唯一的路径,比如从10 到根结点的路径是(10, 5, 2, 1),从4 到根结点的路径是(4, 2, 1),从根结点1 到根结点的路径上只包含一个结点1,因此路径就是(1)。对于两个结点x 和y,假设他们到根结点的路径分别是(x1, x2, ... ,1)和(y1,y2, ... ,1)(这里显然有x = x1,y = y1),那么必然存在两个正整数i 和j,使得从xi 和 yj开. 阅读全文
posted @ 2013-05-04 13:57 Jason Damon 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 在windows下,用ultraEdit查看二进制十六进制文件非常方便,而且还可以直接进行编辑。最近我们对shellcode进行查看,我们都是用od命令来查看的,od -t x1 文件名。就可以已十六进制查看。今天偶然发现用vim也可以以二进制和十六进制查看文件,很爽呀。vim -d 文件名,即已二进制形式打开文件。再用命令:%!xxd即可以十六进制查看,同时还可以直接编辑。最后再用:%!xxd -r把它恢复成二进制。具体的就不写了。详细的参考前辈的博客吧。http://www.cnblogs.com/killkill/archive/2010/06/23/1763785.html 写得... 阅读全文
posted @ 2013-05-04 12:24 Jason Damon 阅读(943) 评论(0) 推荐(0) 编辑
摘要: 何为递归,通过递推关系把原来问题分缩小成一个相同的更小规模的问题,并延续着翼缩小的过程,直到在某一规模上,问题解释已知的,那么问题就解决了。 上次举的例子是求阶乘的。阶乘可以表示为 n! = n*(n-1)!;当n=0时是已知的。那么很明显,这就是可以把一个问题缩小到一个更小的规模。 再来举个例子。Fibonacci数列。数列的第一个和第二个数都为1,接下来每个数都等于前面两个数的和。那么我们就可以得到公式 f(n) = f(n-1) + f(n-2);好了,问题瞬间解决了,这不也是递归的思想吗,把原来问题缩小,并且某个状态时刻的解是已知的。OK,问题解决。下面是是最简单的例子:问... 阅读全文
posted @ 2013-05-04 11:15 Jason Damon 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 问题描述在韩国,有一种小的青蛙。每到晚上,这种青蛙会跳越稻田,从而踩踏稻子。农民在早上看到被踩踏的稻子,希望找到造成最大损害的那只青蛙经过的路径。每只青蛙总是沿着一条直线跳越稻田,而且每次跳跃的距离都相同,如图8-4 所示。 稻田里的稻子组成一个栅格,每棵稻子位于一个格点上,如图8-5 所示。而青蛙总是从稻田的一侧跳进稻田,然后沿着某条直线穿越稻田,从另一侧跳出去,如图8-6 所示。青蛙的每一跳都恰好踩在一棵水稻上,将这棵水稻拍倒。可能会有多只青蛙从稻田穿越,有些水稻被多只青蛙踩踏,如图8-7 所示。当然,农民所见到的是图8-8 中的情形,看不到图8-7中的直线。根据图8-8,农民能够构造出青 阅读全文
posted @ 2013-04-29 22:10 Jason Damon 阅读(654) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 26 下一页