dp—完全背包
来源:互联网 发布:自动化dcs控制软件 编辑:程序博客网 时间:2024/04/29 05:08
题目给定一个正整数n,求最少的完全平方数的数量,使他们的和为n。n≤ 60 000
思路:预处理300个完全平方数,假设重量为数值,价值为1,则转化为一个容量为n的完全背包,求最小的价值。由于数值中含有1,则背包一定能装满。
附:完全背包:
普遍形式:dp[i][j]代表前i种物品装在j容量的最大价值,dp[i][j]=max(dp[i-1][j],dp[i-1][j-k*w[i]]+k*v[i]),k*w[i]<=j
优化:将01背包的逆序改成正序即可。
代码:
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;int w[300],dp[60001];int main(){int n;for(int i=1;i<300;i++) w[i]=i*i;while(~scanf("%d",&n)){/*for(int i=1;i<300;i++){for(int j=v;j>=w[i];j--)dp[j]=max(dp[j],dp[j-w[i]]+v[i])}*/memset(dp,0x3f,sizeof(dp));dp[0]=0;for(int i=1;i<300;i++){for(int j=w[i];j<=n;j++)dp[j]=min(dp[j],dp[j-w[i]]+1);}printf("%d\n",dp[n]);}return 0;}
阅读全文
0 0
- dp—完全背包
- HDU1248 完全背包 DP
- HDU2189(完全背包+DP)
- nyoj311 完全背包 【dp】
- uva10313(DP完全背包)
- UVA674 完全背包DP
- dp 完全背包
- 蓝桥杯--DP-完全背包
- 简单dp 完全背包
- HDU3127 二维完全背包 DP
- DP 完全背包 hdu 1114
- POJ2063 Investment 完全背包[DP]
- NYOJ - 完全背包(经典dp)
- hdu1114Piggy-Bank(DP完全背包)
- 【DP】POJ 1252 完全背包
- [dp]Piggy-Bank 完全背包
- DP--完全背包--HDU - 4508
- HDU4508 DP + 裸 + 完全背包
- 关于推送push中notification的一点问题
- 顺序表应用8:最大子段和之动态规划法
- JAVA初级写程序:双色球游戏
- 第三方类库-Core核心库-Apache Commons Beanutils
- c++与stl入门部分学习
- dp—完全背包
- zookeeper集群环境搭建
- MySQL索引背后的数据结构及算法原理
- 利用angular指令监听ng-repeat渲染完成后执行函数
- Android中mp3长度小于1秒造成播放失败
- SpringBoot28-springboot企业级开发-安全控制Spring Security
- C#中数组、ArrayList和List三者的区别
- numpy学习笔记1—ravel() 和 flatten()
- properties文件