UVA10943 - How do you add?(DP)
来源:互联网 发布:朋友圈制作软件 编辑:程序博客网 时间:2024/05/19 03:19
UVA10943 - How do you add?(DP)
题目链接
题目大意:给你N和K,要求找出这样的K个数(小于等于N),和等于N,问有多少种结果模上1e6。
解题思路:dp。
代码:
#include <cstdio>#include <cstring>const int maxn = 105;const int MOD = 1e6;typedef long long ll;ll dp[maxn][maxn];int N, K;void init () { memset (dp, -1, sizeof (dp));}ll DP (int k, int sum) { ll& ans = dp[k][sum]; if (ans != -1) return ans; if (k == K) { if (sum == N) return ans = 1; return ans = -2; } ll tmp; ans = 0; for (int i = 0; i <= N; i++) { if (sum + i <= N) { tmp = DP(k + 1, sum + i); if (tmp != -2) ans = (ans + tmp) % MOD; } else break; } if (ans == 0) return ans = -2; return ans;}int main () { while (scanf ("%d%d", &N, &K) && (N || K)) { init(); printf ("%lld\n", DP(0, 0)); } return 0;}
0 0
- UVA10943 - How do you add?(DP)
- uva10943 How do you add?
- UVA10943 How do you add?
- uva10943 How do you add?(隔板法+递推)
- UVA10943- How do you add?(隔板法)
- How do you add?(dp)
- UVA 10943 - How do you add?(dp)
- uva 10943 - How do you add?(dp)
- uva 10943 How do you add? (DP)
- How do you add?
- UVA 10943(How do you add?)
- How do you add?(UVA 10943)
- UVa 10780 - How do you add? (简单DP 组合数学 隔板法)
- UVA 题目10943 How do you add?(DP,整数拆分)
- uva 10943How do you add?(简单组合)
- UVa 10943 How do you add?(数学递推)
- 10943 - How do you add?(隔板法)
- UVA 10943 How do you add?(隔板法)
- KMP算法的代码实现二(用类)
- SharePoint Search之(六)Query Suggestion-搜索建议
- HDU3699(POJ 3989)A hard Aoshu Problem(暴力模拟dfs)
- 浅谈动规贪心 与0-1背包和分数背包问题
- wait,notify,notifyall
- UVA10943 - How do you add?(DP)
- typedef和#define的用法与区别
- 并查集详解
- 第九周大星小星
- 第12周项目3(1)-阶乘
- 微信客户端内部推荐项目总结
- 只有lua才能编译出小于200K的代码吗?NO! Python 也可以。
- [设计模式]-适配器模式及其扩展
- 项目总结-基于SpringMVC的微信公众号开发