URAL 1017. Staircases
来源:互联网 发布:python和node.js 编辑:程序博客网 时间:2024/05/17 03:09
这题,写出递推式就过了。用数组zrt[x][n]表示 x个方块在宽度为n的情况下的种类数。
递推式:枚举第一列的高度,然后每一列减去第一列的高度,问题就转化成了若干个zrt [ 剩下的方块数 ] [ n-1 ].
n=2时,有公式 zrt[x][2]=(x-1)/2; 然后再加上记忆化搜索就行了。
代码如下:
long long zrt[501][32];long long f(int x,int n){if(zrt[x][n]) return zrt[x][n];if(x<0) return 0;if(n==2) return (x-1)/2;long long ANS=0;for(int i=1;;i++){//枚举第一列的高度if(x-i*n<2) break;ANS+=f(x-i*n,n-1);}return zrt[x][n]=ANS;}long long F(int x){int high;high=0;while(x>(high+1)*(high+2)/2) high++;long long ANS=0;for(int i=2;i<=high;i++){//枚举x个方格的宽度ANS+=f(x,i);}return ANS;}int main(void){ long long N;while(cin>>N){memset(zrt,0,sizeof(zrt));long long ANS=F(N);cout<<ANS<<endl;}return 0;}
0 0
- ural 1017. The Staircases
- Ural 1017. Staircases
- URAL 1017. Staircases
- ural 1017. Staircases
- ural 1017. Staircases DP
- ural 1017. Staircases(dp)
- URAL 1017. Staircases 解题报告
- URAL 1017. Staircases(递推)
- Ural 1017 The Staircases
- ural 1017 Staircases
- ural 1017 Staircases
- URAL:1017 Staircases
- Ural 1017 Staircases
- URAL 1017 Staircases
- URAL 1017 Staircases 楼梯
- ural 1017. Staircases(dp数的划分)
- Ural 1017 Staircases(DP)
- URAL 1017Staircases dp练习
- Java工具类——把金额转换成汉字大写金额
- 雨林木风 GHOST WIN7 SP1 X64旗舰装机版(64位)2014.05 系统下载
- 条款23:宁以non-member、non-friend替换member函数
- 基本的语法
- 面对变化时,先别说NO
- URAL 1017. Staircases
- Java线程学习小结
- 构造方法及其调用
- sqlserver镜像(无域)
- Camera服务之--架构浅析
- Android 开发-碎文 四大组件
- Handler的用法
- [OJ]尼科彻斯定理
- Nginx 做负载均衡的几种轮询策略