[CodeForces189A]Cut Ribbon[dp][完全背包]
2015-06-06 09:41
337 查看
题目链接:[CodeForces189A]Cut Ribbon[dp][完全背包]
题意分析:给出一条丝带长度n,要求把丝带切成给定长度a、b、c中的一种或多种,问:最多能切成几条?(保证至少有一个解)
解题思路:题目实质上就是问:刚好装满完全背包,可以装的最大价值为多少?
个人感受:第一眼看题的时候,直接写成了一个爬楼梯的dp方程,发现样例都过不了后,就想着贪心,然后各种。。。。。今儿再看这题,才发现,这特么不就是个完全背包么。。。。泪目了。。。。。。
具体代码如下:
题意分析:给出一条丝带长度n,要求把丝带切成给定长度a、b、c中的一种或多种,问:最多能切成几条?(保证至少有一个解)
解题思路:题目实质上就是问:刚好装满完全背包,可以装的最大价值为多少?
个人感受:第一眼看题的时候,直接写成了一个爬楼梯的dp方程,发现样例都过不了后,就想着贪心,然后各种。。。。。今儿再看这题,才发现,这特么不就是个完全背包么。。。。泪目了。。。。。。
具体代码如下:
#include<iostream> #include<cstring> using namespace std; int dp[4011]; int main() { int n, a[3]; cin >> n >> a[0] >> a[1] >> a[2]; memset(dp, -0x3f, sizeof dp); dp[0] = 0; for (int i = 0; i < 3; ++i) for (int j = a[i]; j <= n; ++j) dp[j] = max(dp[j], dp[j - a[i]] + 1); cout << dp << '\n'; return 0; }
相关文章推荐
- WordPress中uploads目录替换为SAE的Storage方法
- Swap Nodes in Pairs
- 多线程处理:何时使用同步类
- 交换输出
- 20150606课程内容
- 《1》CentOS7.0+OpenStack+kvm云平台部署—基础配置
- 看到一个技术厉害的博客贴个链接
- VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)
- [leetcode] 3Sum
- 7.VC界
- 提高Oracle的WHERE语句性能一些原则
- Java加密技术(三)对称加密算法PBE
- Android 开发常用易忘的方法总结
- gdb调试ns-3 netanim中的写入xml
- UNREFERENCED_PARAMETER,函数定义中没有使用函数入口的参数列表中的参数
- Linux pipe功能
- Linux Kernel 4.1将是下一个长期支持版
- 我的arduino小车安装过程
- JDBC
- 大道至简阅读笔记二