[IDDFS+背包] 洛谷P2744 [USACO5.3]量取牛奶Milk Measuring
折腾了好几天的题目,简单讲讲心得。
- 首先看了题解才写出来的,因为有一个核心的一点没想到,用桶的数量当 迭代加深搜索的层数,算是长见识了~
- 每次dp数组的初始化自己手动赋值0,不然会TLE一个点。
思路: 以桶的数量作为深度,做IDDFS,每次用背包DP判断当前是否可行。在一定有解的情况下,那么这个思路是一定能求出答案的(这不是屁话吗?
#include <cstdio> #include <algorithm> #include <cstring>int q,n,bucket[105]; int v[105]; int limit; bool dp[23333]; bool vis[122];bool Can(){memset(dp,0,sizeof(dp));dp[0] = 1;for(int i=1;i<=limit;i++){for(int j=v[i];j<=q;j++){dp[j]+=dp[j-v[i]];}}if(dp[q]) return true;return false; }void dfs(int pos){if(pos > limit ){if( Can() ){printf("%d\n",limit);for(int i=1;i<=limit;i++) printf("%d ",v[i]);exit(0);}return;}for(int i=1;i<=n;i++){if( !vis[i] ){vis[i] = 1;v[pos] = bucket[i];dfs(pos+1);vis[i] = 0;}} }int main(){scanf("%d",&q);scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",&bucket[i]);std::sort(bucket+1,bucket+1+n);for(int i=1;i<=n;i++){limit = i;dfs(1);}return 0; }
转载于:https://www.cnblogs.com/OIerLYF/p/7792592.html
[IDDFS+背包] 洛谷P2744 [USACO5.3]量取牛奶Milk Measuring相关推荐
- 洛谷P2744 [USACO5.3]量取牛奶Milk Measuring
题目描述 农夫约翰要量取 Q(1 <= Q <= 20,000)夸脱(夸脱,quarts,容积单位--译者注) 他的最好的牛奶,并把它装入一个大瓶子中卖出.消费者要多少,他就给多少,从不有 ...
- [USACO5.3]量取牛奶Milk Measuring
https://daniu.luogu.org/problemnew/show/P2744 滚动数组压去第一维:前i种木桶 f[j] 量取体积j最少需要几种木桶 g[j] 体积j的最优解是否使用了第 ...
- [洛谷P1856] [USACO5.5]矩形周长Picture
洛谷题目链接:[USACO5.5]矩形周长Picture 题目背景 墙上贴着许多形状相同的海报.照片.它们的边都是水平和垂直的.每个矩形图片可能部分或全部的覆盖了其他图片.所有矩形合并后的边长称为周长 ...
- 洛谷1345 [Usaco5.4]奶牛的电信
题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,...,a(c),且a1与a2相 ...
- P1759 通天之潜水(不详细,勿看)(动态规划递推,组合背包,洛谷)
题目链接:点击进入 题目分析: 简单的组合背包模板题,但是递推的同时要刷新这种情况使用了哪些物品 ac代码: #include<bits/stdc++.h> using namespace ...
- 洛谷P1709 [USACO5.5]隐藏口令Hidden Password
P1709 [USACO5.5]隐藏口令Hidden Password 题目描述 有时候程序员有很奇怪的方法来隐藏他们的口令.Binny会选择一个字符串S(由N个小写字母组成,5<=N<= ...
- 洛谷 P2746 [USACO5.3]校园网Network of Schools (Tarjan,SCC缩点,DAG性质)
P2746 [USACO5.3]校园网Network of Schools https://www.luogu.org/problem/P2746 题目描述 一些学校连入一个电脑网络.那些学校已订立了 ...
- 贪心算法——部分背包(洛谷 P2240)
贪心算法--部分背包问题 部分背包问题,顾名思义,部分 就是可以取一部分,也就是可以随意拆分的物品,是最简单经典的贪心问题. 解题步骤: 1)用结构体数组保存每个物品的价值及总重量.平均价值: 2)输 ...
- 洛谷 P2746 [USACO5.3]校园网Network of Schools
题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作"接受学校").注意即使 B 在 A 学校的分发列表中, A 也不一定在 B 学 ...
最新文章
- 安全技术大系iOS取证分析
- VOC数据集图片标注工具labelImg简介、安装、使用方法详细攻略(windows) PyQt4、PyQt5
- Eclipse:Cannot complete the install because of a conflicting dependency.问题解决
- 使用JMeter和Yourkit进行REST / HTTP服务的性能分析
- python3.6爬淘宝信息
- mysql视图可以完成的操作_MySQL视图操作
- 黑苹果efi安装_黑苹果新姿势~在线安装macOS
- [转]3D Ripper DX模型截取器
- Flameshot——最好用的ubuntu截图工具
- 创意火焰燃烧效果PS动作
- word如何用制表符对齐公式
- 【Python】8.有益的探索
- jadx反编译—下载和使用
- java 安全包_信息加密系统设计(依托Java平台安全包)
- vscode新手注意事项(字体间隔,报错提示波浪线,头文件路径,opencv头文件路径)
- 英语人名的含义(转)
- 数据分析必备 | 逻辑思维分析方法
- 使用bigdecimal来保留小数
- 阿里云服务器和独享云虚拟主机有什么区别?应该如何选择?
- android 商品筛选view,FilterTabView 基于 Popupwindow 实现的筛选房源信息等相关的控件,可以自由排序 @codeKK Android开源站...
热门文章
- python关键词提取_如何从Python格式字符串中提取关键字? - python
- php脚本搭vps,#分享#基于宝塔面板的ZFaka(发卡程序)一键脚本
- python3.7.4安装pip_python3.7下pip的安装教程
- GeoTools使用之JTSFactoryFinder接口
- 树莓派3B+ (PPOE+hostapd)变身无线路由器
- [CodeForces - 950D]A Leapfrog in the Array(思维)
- Go学习笔记一:基础知识
- 微软投资混合连接,发布本地数据网关
- SQL Server监控全解析
- 通过规模化Scrum创造最新技术的打印机