蓝桥杯之最大体积(数论+完全背包)
问题描述
每个物品有一定的体积(废话),不同的物品组合,装入背包会战用一定的总体积。假如每个物品有无限件可用,那么有些体积是永远也装不出来的。为了尽量装满背包,附中的OIER想要研究一下物品不能装出的最大体积。题目保证有解,如果是有限解,保证不超过2,000,000,000
如果是无限解,则输出0
输入格式
第一行一个整数n(n<=10),表示物品的件数
第2行到N+1行: 每件物品的体积(1<= <=500)
输出格式
一个整数ans,表示不能用这些物品得到的最大体积。
样例输入
3
3
6
10
样例输出
17
又是一个g背包问题。看看这几个数不能组合出来的最大数。
思路是先对这几个数求gcd,若果是1的话,就有解。如果不是1,就没有解。
在能否组成的时候,需要用到完全背包的思路
代码如下:
#include<iostream>
using namespace std;
#define MAX_NUM 100000int n;
int a[11]; //保存物品的体积
int dp[MAX_NUM]; //保存物品能组成的所有体积int gcd(int a,int b) //求两个数的最大公约数
{if (a % b == 0)return b;elsereturn gcd(b, a % b);
}int gcdAll() //求所有数的最大公约数
{int temp = a[0];for (int i = 1; i < n; i++){temp = gcd(temp, a[i]);}return temp;
}int main()
{cin >> n;for (int i = 0; i < n; i++)cin >> a[i];if (gcdAll() == 1) //如果所有数的最大公约数为1,则有解,否则为无限解 {dp[0] = 1;for (int i = 0; i < n; i++){for (int j =a[i]; j <= MAX_NUM; j++){if (dp[j - a[i]] == 1) //i=0时,j为goods[0]的倍数;//接下来,j为 goods[i]中物品体积值组合的结果 dp[j] = 1;}}for (int i = MAX_NUM; i >= 0; i--) //逆序遍历所有的体积结果,将第一个不能组合的数输出后结束 {if (!dp[i]){cout<<i;return 0;}}}cout<<"0"; //无限解return 0;
}
努力加油a啊,(o)/~
蓝桥杯之最大体积(数论+完全背包)相关推荐
- 蓝桥杯 ALGO-1004 无聊的逗 01背包+回溯 python
题目 这逗志芃也太无聊了吧,玩这么一个游戏- 为了这道题能拿个AC我花了三天的时间才搞清楚,感觉这蓝桥杯还是有点难度啊
- 蓝桥杯之貌似化学(g背包)
问题描述 现在有a,b,c三种原料,如果他们按x:y:z混合,就能产生一种神奇的物品d. 当然不一定只产生一份d,但a,b,c的最简比一定是x:y:z 现在给你3种可供选择的物品: 每个物品都是由a, ...
- [蓝桥杯][算法提高VIP]摆花-多重背包计数问题
题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时 ...
- 蓝桥杯 反置数 数论
题目描述 一个整数的"反置数"指的是把该整数的每一位 数字的顺序颠倒过来所得到的另一个整数.如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了.比如说,1245 ...
- 第十二届_国赛蓝桥杯个人模板_基础篇
第十二届_国赛蓝桥杯个人模板_网格图_DFS/BFS篇 第十二届_国赛蓝桥杯个人模板_全排列_DFS/BFS篇 第十二届_国赛蓝桥杯个人模板_DP篇 第十二届_国赛蓝桥杯个人模板_数论篇 第十二届_国 ...
- Java 01背包【动态规划·蓝桥杯练习题】(相信杨超越,相信锦鲤,默默努力,其它的看天意)
锦鲤镇楼 1.题目描述: 时间限制:1.0s 内存限制:256.0MB 关键字:01背包 动态规划 问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高 ...
- [蓝桥杯][2013年第四届真题]买不到的数目-模拟,数论
题目描述 小明开了一家糖果店.他别出心裁:把水果糖包成4颗一包和7颗一包的两种.糖果不能拆包卖. 小朋友来买糖的时候,他就用这两种包装来组合.当然有些糖果数目是无法组合出来的,比如要买 10 颗糖. ...
- AcWing蓝桥杯AB组辅导课08、数论
文章目录 前言 一.数论 例题 例题1:AcWing 1246. 等差数列(最大公约数,第十届蓝桥杯省赛C++B第7题) 分析 题解:最大公约数 例题2:AcWing 1295. X的因子链(算数基本 ...
- HDU and 蓝桥杯 完全背包练习题
题目链接请点击 我说一下题目的大意吧,第一行给出小猪存钱罐的重量和装满硬币的小猪钱罐的重量,那么能够装硬币的质量是(F-E)g ,(F-E)g中使装的硬币最少,把(F-E)当成容量,用完全背包解决求最 ...
最新文章
- “别人家的小孩”是如何用一行代码手撕面试题的?
- 使用opencv中的merge()函数为BGR图像添加alpha通道
- java 容器 线程_JAVA多线程并发容器
- SAP UI5 Gateway后台ETAG校验逻辑
- mysql select null 0,查询值中为NULL,在MySQL中产生0.00
- [洛谷P1369]矩形
- 分布式锁--Redis实现
- python爬虫审查元素_python爬虫3——获取审查元素(板野友美吧图片下载)
- 终日奔波只为饥,方才一饱便思衣
- 学习Unix下C编程的实例
- avc水平什么意思_avc是什么意思(pvc是什么材质)
- 本周大新闻|佳能AR头显MREAL X1发布,Quest手势追踪2.0来袭
- 在linux上安装navicat 出现使用一段时间后闪退的情况
- vue 项目中实现pdf预览 pdf打印 pdf下载
- error C2533: “CTester::{ctor}”: 构造函数不能有返回类型
- round在python是什么意思_细说python中的round()方法
- RHEL 7.0已发布CentOS 7即将到来
- 一条有意思的SQL语句分析
- Ubuntu Linux 锐捷 ruijie 认证成功 校园网 西电 老校区 新校区
- 优思学院|六西格玛黑带的个人成功特质
热门文章
- ufs2.0测试软件,【玩机组教程】让你的一加3/3T的ufs2.0闪存速度焕发新生
- 一个列中多行求和_Excel 用选项求和及用快捷键快速求和,同时对多单元格求和...
- openwrt信号弱掉线_斐讯 FIR151M 频繁掉线(OpenWRT解决方案)
- mysql排序时设置主次_Mysql实现Rownum()排序后根据条件获取名次
- 删除用户的命令是什么mysql_mysql新添加用户与删除用户具体操作命令_MySQL
- pg日期转周_postgresql 存储过程函数:时间戳与日期字符串相互转换
- 4月11日 GCD 总结(一)
- 《开源思索集》一黑客的胜利——读《增长黑客》有感
- 关 于 正 则 表 达 式 的 类 习 题
- Win32窗口编程基础知识——主函数