zoj1163
来源:互联网 发布:java中权限控制框架 编辑:程序博客网 时间:2024/06/06 16:25
题目大意:
求N块砖头能搭成多少种不同的楼梯,要求楼梯每一阶所组成的砖头数都不一样.
解题思路:
相当于求用i个数组成N能有多少种方法.
dp[i][j]为前i个数组成j的方案数.
dp[i][j] = sum(dp[i - 1][j - i]).意思是前i - 1个数组成j - i的方案数.
可以用滚动数组优化,本质上其实就是一个01背包,容量为j,重量为i
代码如下:
#include<stdio.h>#include<string.h>#include<stdlib.h>int main(){ double dp[510][510]; int n,i,j,k; memset(dp,0,sizeof(dp)); for(i=0;i<=500;i++) { for(j=0;j<=500;j++) { if(i==0) { dp[i][j]=1; continue; } if(j==0) { dp[i][j]=0; continue; } if(i>=j) { dp[i][j]=dp[i][j-1]+dp[i-j][j-1]; } else { dp[i][j]=dp[i][j-1]; } } } while(scanf("%d",&n)!=EOF&&n) { printf("%.0lf\n",dp[n][n]-1); } return 0;}
0 0
- zoj1163
- [水]ZOJ1163
- zoj1163:The Staircases
- zoj1163 The Staircases
- ZOJ1163-The Staircases
- zoj1163 The Staircases (简单dp)
- zoj1163 The Staircases(基础dp)
- zoj1163 (很经典很好的DP)
- zoj1163 The Staircases 解法1 O(n^3)
- 简单编程题目连载(八)——最短路径问题
- 关于easyUI删除表格中的行后,提示删除成功并重新加载表格的方法
- Android程序员学PHP开发(13)-简易计算器-PhpStorm
- String...和String[]区别
- 数据库对象命名参考
- zoj1163
- Android StringUtils
- 程设作业(递归判断两个数互质)
- 利用Jexl输出造型为Object实体类的某个变量属性值
- spring框架学习(五)注解
- springMVC+hibernate+oracle10g实现用户登陆
- Linux Top 命令解析
- MongoDB干货系列2-MongoDB执行计划分析详解(2)
- centos7下安装mysql