poj3181【完全背包+整数拆分】
来源:互联网 发布:淘宝用不了怎么回事 编辑:程序博客网 时间:2024/06/03 14:35
题意:
给你一个数n,在给你一个数K,问你这个n用1-k的数去组合,有多少种组合方式。
思路:
背包重量就是n;
那么可以看出 1-k就是重物,价值是数值,重量是数值。
每个重物可以无限取,问题转化为完全背包。
我们用dp[]代表方案数的话,dp[0]=1;
由于当n=1000,k=1000的时候这个方案数是巨大的。
看了别的大牛博客,这个整数拆分真是好啊;
一个代表高位,一个代表低位;
#include<cstdio>#include<iostream>#include<string.h>#include<algorithm>using namespace std;typedef long long LL;const LL INF=1e18;const int N=1e3+10;LL d1[N],d2[N];int main(){ int n,k; scanf("%d%d",&n,&k); memset(d1,0,sizeof(d1)); memset(d2,0,sizeof(d2)); d2[0]=1; for(int i=1;i<=k;i++) { for(int j=i;j<=n;j++) { d1[j]=d1[j]+d1[j-i]+(d2[j]+d2[j-i])/INF;//高位 d2[j]=(d2[j]+d2[j-i])%INF; } } if(d1[n]) printf("%lld",d1[n]); printf("%lld\n",d2[n]); return 0;}
1 0
- poj3181【完全背包+整数拆分】
- poj3181 完全背包+整数拆分
- poj3181(完全背包)
- poj3181-完全背包+高精度
- POJ3181:Dollar Dayz(完全背包)
- POJ3181 完全背包+高精度数模板
- poj3181(高精度完全背包dp)
- POJ3181-Dollar Dayz-完全背包+高精度
- UVA 10590(完全背包,整数拆分+大数加法)
- 【转】POJ3181——Dollar Dayz(完全背包优化)
- 挑战练习题2.3动态规划 poj3181 Dollar Dayz 完全背包
- (poj3181)完全背包((和钱币一样只是这个用到大数))
- POJ3181 Dollar Dayz-完全背包问题-高精度(大数)处理(附测试数据)
- poj3181:藏坑的背包
- [背包问题] 01背包、完全背包、整数找零
- nyoj90 整数拆分(递归,背包两种解法)
- HDU 1028 整数拆分 (母函数_模板|| 背包)
- poj3181
- sitecore 添加item
- 编码问题一网打尽
- linux系统编程之网络编程(一)
- TX1 配置caffe
- 斯坦福第二章:关于最小二乘误差函数非梯度下降法求解办法
- poj3181【完全背包+整数拆分】
- OGL显示列表
- Android常用路径的调用方法
- HDU 3341 Lost's revenge(AC自动机+DP+变进制优化)
- 【Python】|基础:一个reduce()的题目
- android listView或GridView数据不刷新的问题
- C++ const String 类型指针用法
- javaFX
- 放苹果