poj 1664__放苹果,整数的分拆
来源:互联网 发布:青山软件造价 编辑:程序博客网 时间:2024/06/16 21:28
这个题其实很简单,就是将m个相同的苹果放入相同的盘子里,问有多少种放法。
我想先对这个题进行一点的修改,如果放入不同的盘子里,那么结果就是x1+x2+x3+...+xn=m的解的个数,组合数学上叫多重集合的组合问题。
如果盘子不同,且盘子非空,那么这个就是整数的有序分拆。也就是多重集合的组合中每一个至少出现一次的那个结果。
而这个题中盘子是相同的,就是整数的无序分拆问题了。
n的k分拆是说,将n分成k个大于0的数。
整数的无序分拆中有一个公式是:B(n+k,k) = B(n,1)+B(n,2)+B(n,3)+~~~B(n,k);
其中B(n,k)表式n的k分拆。
要上课了,贴一下代码:
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int data[30][30];int get(int m,int k){ if(data[m][k] != -1) return data[m][k]; if(k == 1 || m == k) return 1; if(m < k) return 0; int sum = 0; for(int i = 1;i <= k;i++) { sum += get(m-k,i); } data[m][k] = sum; return sum;}int main(){ int t; cin >> t; memset(data,-1,sizeof(data)); while(t--) { int m,k; cin >> m >> k; int sum = 0; for(int i = 1;i <= k;i++) sum += get(m,i); cout << sum << "\n"; } return 0;}
- poj 1664__放苹果,整数的分拆
- poj 1664 放苹果_整数拆分
- POJ 1664 分苹果,整数拆解
- poj 1664 放苹果
- poj 1664 放苹果
- poj 放苹果 1664
- POJ 1664 放苹果
- POJ 1664 放苹果
- POJ 1664 放苹果
- POJ-1664-放苹果
- poj - 1664 - 放苹果
- poj 1664 放苹果
- POJ-1664(放苹果)
- poj 1664 放苹果
- POJ 1664 放苹果
- POJ 1664 放苹果
- POJ 1664 放苹果
- POJ 1664 放苹果
- linux数据安装
- c语言 NULL
- ubuntu 常用命令
- Java判断字符是否是汉字
- 顺序栈的基本操作
- poj 1664__放苹果,整数的分拆
- 12.19 礼拜一 天气晴 Jsp最后作业答辩 很稳 哈哈
- 硬盘接口
- config.xml of Jenkins
- Configure WCF
- junit 4笔记
- 在Silverlight里面嵌入HTML/ASPX/URL/Document/SVG等
- 让电脑只能登录指定QQ号码
- 常用webservice调用