2012年10月22日

hdu 2068 RPG的错排 (错排+组合)

摘要: 点击打开链接 错排+组合 #include"stdio.h"double zuhe(int n,int m){ double s=1,i; for(i=0;i<m;i++) s=s*(n-i)/(i+1); return s;}int main( ){ int n,m,i; double ... 阅读全文

posted @ 2012-10-22 13:20 Slege 阅读(113) 评论(0) 推荐(0) 编辑

hdu 2151 Worm (DP)

摘要: 点击打开链接 i表示时间,j表示第几棵树,方程: dp[i][j]=dp[i-1][j-1]+dp[i-1][j+1] #include"stdio.h"int main(){ int dp[100][200]; int i,j; int n,sta,time,end; while... 阅读全文

posted @ 2012-10-22 13:20 Slege 阅读(99) 评论(0) 推荐(0) 编辑

hdu 2154 跳舞毯 (DP)

摘要: 点击打开链接 dp[i]=dp[i-1]+2*dp[i-2] #include"stdio.h"int main(){ __int64 dp[1005]; int i; int n; dp[1]=0; dp[2]=2; for(i=3;i<=1000;i++) { dp[i]=dp[i-1... 阅读全文

posted @ 2012-10-22 13:20 Slege 阅读(79) 评论(0) 推荐(0) 编辑

hdu 2512 一卡通大冒险 (DP)

摘要: 点击打开链接 dp[i][j]表示i个人分成j堆得总分法。 dp[i][j]=dp[i-1][j-1]+dp[i-1][j]*j dp[i-1][j-1]表示最后一个人i不和前面的j-1堆人共在一起,单独成一堆。 dp[i-1][j]*j表示最后一个人和前面的j堆人共在一起,最后乘... 阅读全文

posted @ 2012-10-22 13:20 Slege 阅读(72) 评论(0) 推荐(0) 编辑

hdu 2709 Sumsets (找规律)

摘要: 找规律 #include"stdio.h"__int64 a[1000002];int main(){ int i,n; a[1]=1;a[2]=2; for(i=3;i<=1000000;i++) { if(i%2==0) a[i]=(a[i-2]+a[i/2])00000000;... 阅读全文

posted @ 2012-10-22 13:20 Slege 阅读(121) 评论(0) 推荐(0) 编辑

hdu 1396 Counting Triangles (Dp)

摘要: 点击打开链接 根据边长每增加一,正三角和反三角增加的多少进行判断! #include"stdio.h"int dp[510]={0,1};int main(){ int i,n; for(i=2;i<=500;i++) { if(i%2==1) dp[i]=dp[i-1]+(i*i-1... 阅读全文

posted @ 2012-10-22 13:19 Slege 阅读(74) 评论(0) 推荐(0) 编辑

HDU 1297 Children’s Queue (DP)

摘要: 点击打开链接 分男女生考慮,設總共有n個人(f(n)表示當有n個人的時候合法序列的個數,ak表示第k個人),當a1為男生時,有f(n-1)種可能,當a1是女生時,a2必為女生;當a1、a2都為女生時,a3為男生,有f(n-3)種可能,當a1、a2、a3都為女生,a4為男生時,有f(n-4)種可... 阅读全文

posted @ 2012-10-22 13:19 Slege 阅读(107) 评论(0) 推荐(0) 编辑

hdu 1992 Tiling a Grid With Dominoes (DP)

摘要: 点击打开链接 高度是固定的,只用考虑宽度带来的影响。 少一列,是dp[1]*dp[i-1]=dp[i-1] 少两列,是dp[2]*dp[i-2]=5*dp[i-2],但是其中一种情况与少一列的重复,所以只有4*dp[i-2] 再往后少奇数列,都只有2*dp[i](考虑可能情况并且不... 阅读全文

posted @ 2012-10-22 13:19 Slege 阅读(97) 评论(0) 推荐(0) 编辑

hdu 1995 汉诺塔V

摘要: 点击打开链接 dp[i][j]表示共有i个圆盘的汉诺塔,第j个最少移动的次数 dp[i][j]=dp[i-1][j]*2; #include"stdio.h"#include"string.h"#include"math.h"__int64 dp[64][64];int main(... 阅读全文

posted @ 2012-10-22 13:19 Slege 阅读(83) 评论(0) 推荐(0) 编辑

hdu 1996 汉诺塔VI

摘要: 点击打开链接 dp[i]=dp[i-1]*3 乍一看是复杂的排列组合问题,其实是:每个盘子都可以放到三个柱子上的任意一个,所以是3^n. #include"stdio.h"__int64 dp[30];int main(){ int i; dp[0]=1; for(i=1;i<30;i++... 阅读全文

posted @ 2012-10-22 13:19 Slege 阅读(82) 评论(0) 推荐(0) 编辑

hdu 2065 "红色病毒"问题 (母函数)

摘要: 点击打开链接 指数型母函数问题 引例:假设有8个元素,其中a1重复3次, a2重复2次,a3重复3次。从中取r个组合,, 这样,对于一个多重集,其中a1重复n1次,a2 重复n2次,…,ak重复nk次, 从中取r个排列的不同排列数所对应的指数型母函数为 G(x)=(1+x/1!+x^2/... 阅读全文

posted @ 2012-10-22 13:19 Slege 阅读(120) 评论(0) 推荐(0) 编辑

hdu 2067 小兔的棋盘 (DP)

摘要: 点击打开链接 假设小兔的棋盘是 8 × 8 的 ( 当然你也可以假设是其他 )。如下图:2067" height=241 alt="" src="点击打开链接" width=241 border=0> 箭头方向表示从该格子下一步能去的格子。因为不能穿越对角线,所有对角线上的格子只有进去的... 阅读全文

posted @ 2012-10-22 13:19 Slege 阅读(226) 评论(0) 推荐(0) 编辑

hdu 1290 献给杭电五十周年校庆的礼物 (DP)

摘要: 点击打开链接 1) n条直线最多分平面问题 题目大致如:n条直线,最多可以把平面分为多少个区域。 析:可能你以前就见过这题目,这充其量是一道初中的思考题。但一个类型的题目还是从简单的入手,才容易发现规律。当有n-1条直线时,平面最多被分成了f(n-1)个区... 阅读全文

posted @ 2012-10-22 13:18 Slege 阅读(147) 评论(0) 推荐(0) 编辑

hdu 1284 钱币兑换问题 (DP)

摘要: 点击打开链接 //dp(完全背包)#include #include #define N 35000int dp[N];int main(){ dp[0] = 1; for(int i = 1; i #include #define N 35000__int64 ans[N]... 阅读全文

posted @ 2012-10-22 13:18 Slege 阅读(135) 评论(0) 推荐(0) 编辑

hdu 1267 下沙的沙子有几粒? (DP)

摘要: 点击打开链接 #include"stdio.h"__int64 dp[22][22];/*dp[i][j]=dp[i-1][j]+dp[i][j-1],再加一个H可以放在最前面就有dp[i-1][j]个,再加一个D放在最后就有dp[i][j-1]个*/void fun(){ int i,j;... 阅读全文

posted @ 2012-10-22 13:17 Slege 阅读(130) 评论(0) 推荐(0) 编辑

hdu 1249 三角形 (DP)

摘要: 点击打开链接 1: 可以画一个圆,圆里放一个内正三角形。当放入第二个时,我们就把它转化为把已有的第一个三角形围着同心轴稍微往右转一点点(向左转一样的),那么,第二个三角形的每一条边都会与第一个三角形的其中两条边相交,这样就可得3*1*2+2个区域,3表示3条边,1表示第二个三角形的每一... 阅读全文

posted @ 2012-10-22 13:17 Slege 阅读(84) 评论(0) 推荐(0) 编辑

hdu 1207 汉诺塔II (DP)

摘要: 点击打开链接 对于i个盘子,从1到i进行枚举(变量设为j),将j个盘子移动到第四个柱子上,对于剩下的盘子,则可看成是三个柱子下的情况,枚举过程中找到一个最小值即为此时i个盘子的最小移动次数。注:三个柱子情况下,n个盘子需要移动2^n-1次 #include"stdio.h"#include"... 阅读全文

posted @ 2012-10-22 13:17 Slege 阅读(82) 评论(0) 推荐(0) 编辑

hdu 1143 Tri Tiling (DP)

摘要: 点击打开链接 转载:开始也是想递推的,但是发现递推的过程中有重复计算,所以便下结论此题不是递推,然后就不会做了。后来看了人家大牛的解法,发现确实是递推,而且避免重复计算的过程的公式为f[n]=f(2)*f[n-2]+2*(f[n-4]+f[n-2]+...+f[0])(其中f[0]约定为1)。... 阅读全文

posted @ 2012-10-22 13:17 Slege 阅读(105) 评论(0) 推荐(0) 编辑

hdu 4151 The Special Number (DP)

摘要: 点击打开链接 先将所有数求出来后,再用二分找出第一个大于等于x的值 #include#includeint a[800000];int bs(int j,int x){ int mid,i=1; while(i=2) {ok = 0;break;} ... 阅读全文

posted @ 2012-10-22 13:17 Slege 阅读(145) 评论(0) 推荐(0) 编辑

hdu 3123 GCC (数学)

摘要: 点击打开链接 (a+b)%m=[(a%m)+(b%m)]%m (a*b)%m=[(a%m)*(b%m)]%m 所以(0!+1!+2!+.....+n!)%m=[(0!%m+1!%m)%m+(1!%m)*(2%m)%m}%m.........到K>=n时,K!%m=0 所以分为n>=... 阅读全文

posted @ 2012-10-22 13:16 Slege 阅读(142) 评论(0) 推荐(0) 编辑

导航