_xiaobai_

导航

zoj1163 The Staircases(DP)

/*
 01背包:整数拆分问题
*/

View Code
 1 #include <iostream>
2 #include <cstdlib>
3 #include <cstring>
4
5 using namespace std;
6
7 long long dp[ 501 ];
8
9 int main()
10 {
11 memset( dp, 0, sizeof( dp ) );
12 dp[ 0 ]= 1;
13 for ( int i = 1 ; i <= 500 ; ++ i )
14 for ( int j = 500 ; j >= i ; -- j )
15 dp[ j ] += dp[ j-i ];
16 int n;
17 while ( cin >> n && n )
18 cout << dp[ n ]-1 << endl;
19 return 0;
20 }

posted on 2011-08-18 01:58  _xiaobai_  阅读(183)  评论(0编辑  收藏  举报