fjnu 1904 楼梯
来源:互联网 发布:时时动态数据展现工具 编辑:程序博客网 时间:2024/04/24 12:21
Description
一个小孩有N块小砖头 (5 <= N <= 500).这些小砖头能彻成不同的楼梯。这些楼梯包含着不同高度的梯级(严格按照递减顺序),不允许有(高度)相同的梯级。每一个楼梯至少包含2个梯级,每个梯级至少一块砖。 以下为N=11,N=5的例子
Your task is to write a program that reads from input file one number N and writes to output file the only number Q ?amount of different staircases that can be built from exactly N bricks.
读入N后,求出Q,即用N块砖能彻出的不同的楼梯数量。
Input
输入第一行是测试数据的组数M,
接着M行每行有一个Number N,表示有N块小砖头
Output
输出M行,每行有一个Number Q,表示用N块砖能彻出的不同的楼梯数量。
Sample Input
Sample Output1212
995645335
KEY:DP,其中a[i][j]表示一共有i块,第一块为j,进行DP
- Source:
- #include<iostream>
- using namespace std;
- long long a[501][501];
- int N;
- void GetList()
- {
- int n,k,i;
- for(i=1;i<=500;i++)
- a[i][i]=1;
- for(n=2;n<=500;n++)
- for(k=1;k<=n-1;k++)
- {
- for(i=k+1;i<=n;i++)
- {
- if(n-k<=k) break;
- else
- {
- a[n][k]+=a[n-k][i];
- }
- }
- }
- }
- int main()
- {
- long long sum=0;
- int i,j;
- GetList();
- int n;
- cin>>n;
- for(i=1;i<=n;i++)
- {
- cin>>N;
- sum=0;
- for(j=1;j<N;j++)
- sum+=a[N][j];
- printf("%lld/n",sum);
- }
- return 0;
- }
- fjnu 1904 楼梯
- FJNU
- 楼梯
- FJNU字符串
- FJNU字符串
- fjnu 1772
- fjnu 1980 集合
- fjnu 1976 Elevator
- fjnu 1732 约瑟夫游戏
- fjnu 1730 整型数组
- fjnu 1728 抓迷藏
- fjnu 1715 对称数
- fjnu 1733 统计单词
- fjnu 1937 Tudoku
- fjnu 1859 Golf
- fjnu 1532 Jolly Jumpers
- fjnu 1444 乒乓球
- fjnu 1281 Alternating Sums
- 教你如何设置电脑开机后自动上网
- XP 技巧集锦
- ATL
- 开源.NET邮件服务器
- SQL Server 2008 亮点
- fjnu 1904 楼梯
- 成都圣火传递现场 功夫熊猫助阵火炬
- 关于多线程
- extmail收不到任何信件,只能发 450.4.7.1
- NFS出错了,Permission denied
- 程序员
- 二,三,四层交换机的区别-转
- Cisco Nexus 7000系列交换机
- 射频卡多线程读写原理及其实现