折腾了好几天的题目,简单讲讲心得。

  • 首先看了题解才写出来的,因为有一个核心的一点没想到,用桶的数量当 迭代加深搜索的层数,算是长见识了~
  • 每次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相关推荐

  1. 洛谷P2744 [USACO5.3]量取牛奶Milk Measuring

    题目描述 农夫约翰要量取 Q(1 <= Q <= 20,000)夸脱(夸脱,quarts,容积单位--译者注) 他的最好的牛奶,并把它装入一个大瓶子中卖出.消费者要多少,他就给多少,从不有 ...

  2. [USACO5.3]量取牛奶Milk Measuring

    https://daniu.luogu.org/problemnew/show/P2744 滚动数组压去第一维:前i种木桶 f[j] 量取体积j最少需要几种木桶 g[j]  体积j的最优解是否使用了第 ...

  3. [洛谷P1856] [USACO5.5]矩形周长Picture

    洛谷题目链接:[USACO5.5]矩形周长Picture 题目背景 墙上贴着许多形状相同的海报.照片.它们的边都是水平和垂直的.每个矩形图片可能部分或全部的覆盖了其他图片.所有矩形合并后的边长称为周长 ...

  4. 洛谷1345 [Usaco5.4]奶牛的电信

    题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,...,a(c),且a1与a2相 ...

  5. P1759 通天之潜水(不详细,勿看)(动态规划递推,组合背包,洛谷)

    题目链接:点击进入 题目分析: 简单的组合背包模板题,但是递推的同时要刷新这种情况使用了哪些物品 ac代码: #include<bits/stdc++.h> using namespace ...

  6. 洛谷P1709 [USACO5.5]隐藏口令Hidden Password

    P1709 [USACO5.5]隐藏口令Hidden Password 题目描述 有时候程序员有很奇怪的方法来隐藏他们的口令.Binny会选择一个字符串S(由N个小写字母组成,5<=N<= ...

  7. 洛谷 P2746 [USACO5.3]校园网Network of Schools (Tarjan,SCC缩点,DAG性质)

    P2746 [USACO5.3]校园网Network of Schools https://www.luogu.org/problem/P2746 题目描述 一些学校连入一个电脑网络.那些学校已订立了 ...

  8. 贪心算法——部分背包(洛谷 P2240)

    贪心算法--部分背包问题 部分背包问题,顾名思义,部分 就是可以取一部分,也就是可以随意拆分的物品,是最简单经典的贪心问题. 解题步骤: 1)用结构体数组保存每个物品的价值及总重量.平均价值: 2)输 ...

  9. 洛谷 P2746 [USACO5.3]校园网Network of Schools

    题目描述 一些学校连入一个电脑网络.那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作"接受学校").注意即使 B 在 A 学校的分发列表中, A 也不一定在 B 学 ...

最新文章

  1. 安全技术大系iOS取证分析
  2. VOC数据集图片标注工具labelImg简介、安装、使用方法详细攻略(windows) PyQt4、PyQt5
  3. Eclipse:Cannot complete the install because of a conflicting dependency.问题解决
  4. 使用JMeter和Yourkit进行REST / HTTP服务的性能分析
  5. python3.6爬淘宝信息
  6. mysql视图可以完成的操作_MySQL视图操作
  7. 黑苹果efi安装_黑苹果新姿势~在线安装macOS
  8. [转]3D Ripper DX模型截取器
  9. Flameshot——最好用的ubuntu截图工具
  10. 创意火焰燃烧效果PS动作
  11. word如何用制表符对齐公式
  12. 【Python】8.有益的探索
  13. jadx反编译—下载和使用
  14. java 安全包_信息加密系统设计(依托Java平台安全包)
  15. vscode新手注意事项(字体间隔,报错提示波浪线,头文件路径,opencv头文件路径)
  16. 英语人名的含义(转)
  17. 数据分析必备 | 逻辑思维分析方法
  18. 使用bigdecimal来保留小数
  19. 阿里云服务器和独享云虚拟主机有什么区别?应该如何选择?
  20. android 商品筛选view,FilterTabView 基于 Popupwindow 实现的筛选房源信息等相关的控件,可以自由排序 @codeKK Android开源站...

热门文章

  1. python关键词提取_如何从Python格式字符串中提取关键字? - python
  2. php脚本搭vps,#分享#基于宝塔面板的ZFaka(发卡程序)一键脚本
  3. python3.7.4安装pip_python3.7下pip的安装教程
  4. GeoTools使用之JTSFactoryFinder接口
  5. 树莓派3B+ (PPOE+hostapd)变身无线路由器
  6. [CodeForces - 950D]A Leapfrog in the Array(思维)
  7. Go学习笔记一:基础知识
  8. 微软投资混合连接,发布本地数据网关
  9. SQL Server监控全解析
  10. 通过规模化Scrum创造最新技术的打印机