本文主要是介绍hdu 4504威威猫系列故事——篮球梦,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第五题:整数划分 dp[m] += dp[m - i](i = 1,2,3)#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> using namespace std; #define INF 100000000 #define MAXN 200 long long dp[2][MAXN + 1]; int main() { int A, B, t; int now , pre; while(~scanf("%d%d%d", &A, &B, &t)) { int n = t / 15; B += n / 2; n = (n + 1) / 2; int m = B - A + 1; if(n == 0) { if(A>B)printf("1\n"); else printf("0\n"); continue; } memset(dp, 0, sizeof(dp)); now = 0; pre = 1; dp[now][1] = dp[now][2] = dp[now][3] = 1; for(int i = 2; i <= n; ++i) { now = !now; pre = !pre; for(int j = MAXN; j >= 0; --j) { dp[now][j + 1] += dp[pre][j]; dp[now][j + 2] += dp[pre][j]; dp[now][j + 3] += dp[pre][j]; } memset(dp[pre], 0, sizeof(dp[pre])); } long long ans = 0; for(int i = (m > n) ? m : n; i <= MAXN; ++i ) ans += dp[now][i]; printf("%lld\n", ans); } return 0; }
这篇关于hdu 4504威威猫系列故事——篮球梦的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!