随笔分类 -  找规律或推公式

摘要:没什么,都是推公式。2064中设n个盘子需要g(n)步,则g(n)=3*g(n-1)+2,很好想,从而得通项公式g(n)=3^n-1;2077中加了一个条件,难想一些,为了便于说明,我们把三根柱子分别记为柱A、柱B、柱C,第n个盘子记为盘n,那么最优情况肯定是先把上面n-2个盘子移到柱C上,再把盘n-1和盘n依次移到柱B上,然后把柱C上的n-2个盘子移回柱A,接着把盘n-1和盘n移到柱C上,最后再把n-2个盘子移到柱C即可,这个过程中,把n-2个盘子从柱A移到柱C(或反向移动)的过程与2064题是完全一样的。故移动n个盘子的步数f(n)=3*g(n-2)+4,代入上面的通项公式得f(n)=3^ 阅读全文
posted @ 2011-07-31 19:50 moonbay 阅读(199) 评论(0) 推荐(1)
摘要:这几天做了好几道错排题目,这题就直接在hdu2069的代码上改了,直接过了/* * hdu2068/linux.c * Created on: 2011-7-31 * Author : ben */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>void work();int main() {#ifndef ONLINE_JUDGE freopen("data.in", "r", stdin);#endif w 阅读全文
posted @ 2011-07-31 12:36 moonbay 阅读(155) 评论(0) 推荐(0)
摘要:找一个子序列的和等于M,那么这个子序列可以看成a+1, a+2, ... , a+d 这时,d就为这个序列的长度,起始数字就是a+1,而这个序列的和即M=a*d + (1 + d) * d /2;得出d*d<2 * m,从而可以枚举d,计算出a 阅读全文
posted @ 2011-07-28 14:18 moonbay 阅读(146) 评论(0) 推荐(0)
摘要:这题就是推递推关系,推了我两个小时,推出来以后觉得还是挺简单的。用一个二维数组存放结果,f(i, j)表示结果。除了当i = j时,f(i, i) = (i - 1) * [f(i - 1, i - 1) + f( i - 2, i - 2)]和j = 2时f(i,2) = f(i-1,2)+ i-1;之外,f(i, j)= f(i-1,j) + f(i-1,j -1)*(j - 1) + f(i - 1, j - 2) * (i - j + 1);原理很简单,就是在一般情况下,f(i, j)只会由f(i - 1, j)、f(i - 1, j - 1)、f(i-1, j-2)三项组成,因为当最 阅读全文
posted @ 2011-07-25 21:54 moonbay 阅读(174) 评论(0) 推荐(0)
摘要:这道题可以认为是一道纯数学题,我居然半天没推出公式,最后参考了一下别人的解题报告才想清楚,汗颜啊~~N张票的所有排列可能自然是Ann = N!种排列方式现在的问题就是N张票的错排方式有几种。首先我们考虑,如果前面N-1个人拿的都不是自己的票,即前N-1个人满足错排,现在又来了一个人,他手里拿的是自己的票。只要他把自己的票与其他N-1个人中的任意一个交换,就可以满足N个人的错排。这时有N-1种方法。 另外,我们考虑,如果前N-1个人不满足错排,而第N个人把自己的票与其中一个人交换后恰好满足错排。这种情况发生在原先N-1人中,N-2个人满足错排,有且仅有一个人拿的是自己的票,而第N个人恰好与他做了 阅读全文
posted @ 2011-07-25 16:55 moonbay 阅读(197) 评论(0) 推荐(0)
摘要:题目意思是给定数量的1,2,5面值的硬币,问不能够成的最小面值。这题应该有多种解法,动态规划,母函数应该都行。不过最简单的方法还是发现了其中的规律以后,其实一般情况下结果应该都是a + 2 * b + 5 * c + 1,特殊情况加以判断即可,情况也不多,几行代码搞定。#include <stdio.h>int main() { int a, b, c, x;/* freopen("data.in", "r", stdin);*/ while (scanf("%d%d%d", &a, &b, &c) 阅读全文
posted @ 2011-07-18 14:37 moonbay 阅读(158) 评论(0) 推荐(0)
摘要:这题初一看以为是动态规划,打了一段时间以后猛然想到,其实只要复习一门难度最小的课,所得的效率就会是最高的。原理就是,如果a+b = c,则a^2+b^2<c^2. 阅读全文
posted @ 2011-07-16 16:28 moonbay 阅读(162) 评论(0) 推荐(1)