Ural_1017. Staircases(DP)
2011-10-01 19:20
375 查看
这题纠结了一天,到现在也没搞很明白,转移方程 dp[i][j] += dp[i-j][k]; ( 0 <= k < j),表示将最后一层(最高的一层)拿掉之后的所有子结构的和。
代码:
代码:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N = 501; long long dp ; int main(){ //freopen("data.in", "r", stdin); int n, i, j, k; long long ans; while(~scanf("%d", &n)){ memset(dp, 0, sizeof(dp)); for(i = 1; i <= n; i++){ dp[i][i] = 1; } dp[3][2] = 1; dp[4][3] = 1; for(i = 5; i <= n; i++){ for(j = 1; j < i; j++){ for(k = 0; k < j; k++){ dp[i][j] += dp[i-j][k]; } } } for(i = 1, ans = 0; i < n; i++){ ans += dp [i]; } printf("%lld\n", ans); } return 0; }
相关文章推荐
- Ural 1017 Staircases(DP)
- ural 1017. Staircases(dp)
- 递推DP URAL 1017 Staircases
- ural 1017. Staircases(dp)
- ural 1017. Staircases(dp数的划分)
- ural 1017. Staircases
- URAL:1017 Staircases
- Ural 1017. Staircases
- ural 1017 Staircases
- ural 1017. Staircases
- URAL 1017 Staircases
- 【DP】ural 1017
- URAL 1017. Staircases(递推)
- Ural 1017 Staircases
- URAL 1017. Staircases
- ural 1017 Staircases
- ural 1017. Staircases DP
- URAL1017——DP——Staircases
- ural 1017. Staircases
- URAL 1017|Staircases|动态规划