上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 34 下一页

2012年10月22日

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) 编辑

2012年10月15日

hdu 2132 An easy problem (递推)

摘要: 点击打开链接 wrong:#include"stdio.h"__int64 a[100002],i;int main(){ int n; a[1]=1; a[2]=3; for(i=3;i0)//这里n>=0,!!!!一定要注意!! printf("%I64d\n",a[n]); retu... 阅读全文

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

hdu 2139 Calculate the formula (递推)

摘要: 点击打开链接 找规律,不能直接算,否则超时 n=(n+2)*(n+1)*n/6; #includeint main(){ __int64 n; while(scanf("%I64d",&n)!=EOF) { n=(n+2)*(n+1)*n/6; printf("%I64d\n"... 阅读全文

posted @ 2012-10-15 13:10 Slege 阅读(68) 评论(0) 推荐(0) 编辑

上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 34 下一页

导航