Light oj 1233 - Coin Change (III) (背包优化)
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1233
题目就不说明了。
背包的二进制优化,比如10可以表示为1 2 4 3,而这些数能表示1 ~ 10的任意的数。然后类似01背包就好了。
1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cstdio> 6 #include <vector> 7 #include <ctime> 8 #include <queue> 9 #include <list> 10 #include <set> 11 #include <map> 12 using namespace std; 13 #define INF 0x3f3f3f3f 14 typedef long long LL; 15 const int N = 1e5 + 5; 16 int dp[N]; 17 int val[105], c[105]; 18 19 int main() 20 { 21 int t, n, m; 22 scanf("%d", &t); 23 for(int ca = 1; ca <= t; ++ca) { 24 scanf("%d %d", &n, &m); 25 for(int i = 1; i <= n; ++i) { 26 scanf("%d", val + i); 27 } 28 for(int i = 1; i <= n; ++i) { 29 scanf("%d", c + i); 30 } 31 memset(dp, 0, sizeof(dp)); 32 dp[0] = 1; 33 for(int i = 1; i <= n; ++i) { 34 for(int k = 1; k <= c[i]; k <<= 1) { 35 for(int j = m; j >= k*val[i]; --j) { 36 dp[j] |= dp[j - k*val[i]]; 37 } 38 c[i] -= k; 39 } 40 if(c[i]) { 41 for(int j = m; j >= c[i]*val[i]; --j) { 42 dp[j] |= dp[j - c[i]*val[i]]; 43 } 44 } 45 } 46 int ans = 0; 47 for(int i = 1; i <= m; ++i) { 48 ans += dp[i]; 49 } 50 printf("Case %d: %d\n", ca, ans); 51 } 52 return 0; 53 }
转载于:https://www.cnblogs.com/Recoder/p/5965081.html
Light oj 1233 - Coin Change (III) (背包优化)相关推荐
- Light OJ Dynamic Programming
免费做一样新 1004 - Monkey Banana Problem 号码塔 1005 - Rooks 排列 1013 - Love Calculator LCS变形 dp[i][j][k]对于第一 ...
- Lightoj 1231 - Coin Change (I) (裸裸的多重背包)
题目链接: Lightoj 1231 - Coin Change (I) 题目描述: 就是有n种硬币,每种硬币有两个属性(价值,数目).问用给定的硬币组成K面值,有多少种方案? 解题思路: 赤果果的 ...
- C++coin change 硬币找零(附完整源码)
coin change 硬币找零 coin change 硬币找零算法的完整源码(定义,实现,main函数测试) coin change 硬币找零算法的完整源码(定义,实现,main函数测试) #in ...
- Light OJ 1406 Assassin`s Creed 减少国家DP+支撑点甚至通缩+最小路径覆盖
标题来源:Light OJ 1406 Assassin`s Creed 意甲冠军:向图 派出最少的人经过全部的城市 而且每一个人不能走别人走过的地方 思路:最少的的人能够走全然图 明显是最小路径覆盖问 ...
- 利用动态规划(DP)解决 Coin Change 问题
问题来源 这是Hackerrank上的一个比较有意思的问题,详见下面的链接: https://www.hackerrank.com/challenges/ctci-coin-change 问题简述 给 ...
- Light OJ 1316 A Wedding Party 最短路+状态压缩DP
题目来源:Light OJ 1316 1316 - A Wedding Party 题意:和HDU 4284 差点儿相同 有一些商店 从起点到终点在走过尽量多商店的情况下求最短路 思路:首先预处理每两 ...
- hdu2069(Coin Change)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Coin Change Time Limit: 1000/1000 MS (Java/Other ...
- LeetCode 518 Coin Change 2 (python)
目录 LeetCode 518 Coin Change 2 (python) Code 欢迎一起来参与leetcode刷题项目 LeetCode 518 Coin Change 2 (python) ...
- Coin Change【硬币找零】
一.题目 英文:Coin Change 中文:硬币找零 二.内容要求 英文:You are given coins of different denominations and a total amo ...
- uva 674 Coin Change 换钱币【完全背包】
题目链接:https://vjudge.net/contest/59424#problem/A 题目大意: 有5种硬币, 面值分别为1.5.10.25.50,现在给出金额,问可以用多少种方式组成该面值 ...
最新文章
- 【OpenCV 4开发详解】分割图像——分水岭法
- 【业务】现金贷获客之道业务流程分析
- STL 之remove,remove_if,remove_copy,remove_copy_if
- CENTOS 内存释放
- java设计模式之单例模式(七种方法)
- 体验 CodeSmith
- python算法应用(三)——分级聚类
- 数据分析来诠释,为了“鸡”出“牛蛙”,中国家长到底能有多拼!
- 怎么设置服务器上的文件夹密码,文件服务器怎么设置文件夹密码
- 华为鸿蒙乌鸦快爷,华为鸿蒙第一批名单
- 有向无环图描述表达式
- vivo面试经验4(linux基本操作,最基本,必须得会!!)
- 「代码随想录」 377. 组合总和 Ⅳ 【动态规划】力扣详解!
- 《C语言程序设计:问题与求解方法》——2.15节算术表达式
- 微信浏览器禁止页面下拉查看网址(不影响页面内部scroll)
- 2022软件测试技能 Jmeter+Ant+Jenkins持续集成并生成测试报告教程
- python实现二十四点
- 一文读懂多帧超分辨率来龙去脉2019
- 地图对接汇总(百度地图)
- Arcgis填补栅格空缺值Nodata