解题思路:
首先想到的是搜索,搜索使用哪几种符合条件的饲料,找最小的花费。由于dfs的特点,先找到的方案一定是字典序最小的。
但是暴力搜索会超时,需要剪枝,详见注释

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,v[35],a[35][35],ans=1e9,cnt,t,c[35],top[35];
void dfs(int x,int sum){bool flag=0;for (int i=1;i<=n;i++) if (v[i]>0) {flag=1;break;}//边界条件,要使每个v[i]都<0;if (!flag){if (sum<ans){//最优性剪枝ans=sum;t=cnt;for (int i=1;i<=cnt;i++)c[i]=top[i];}return ;}for (int i=x+1;i<=m;i++){//从x+1搜索,不再搜索前边的,可行性剪枝for (int j=1;j<=n;j++)v[j]-=a[i][j];top[++cnt]=i;dfs(i,sum+1);--cnt;//回溯for (int j=1;j<=n;j++)v[j]+=a[i][j];//回溯 }
}
int main(){cin>>n;for (int i=1;i<=n;i++)scanf("%d",&v[i]);cin>>m;for(int i=1;i<=m;i++) for (int j=1;j<=n;j++)scanf("%d",&a[i][j]);dfs(0,0);cout<<t<<" "; for (int i=1;i<=t;i++)cout<<c[i]<<" "; return 0;
} 

洛谷P1460 健康的荷斯坦奶牛相关推荐

  1. 洛谷 P1460 健康的荷斯坦奶牛 Healthy Holsteins

    P1460 健康的荷斯坦奶牛 Healthy Holsteins 题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保 ...

  2. 洛谷P1460 健康的荷斯坦奶牛 Healthy Holsteins

    题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维他命 ...

  3. 【搜索】洛谷 P1460 健康的荷斯坦奶牛 Healthy Holsteins

    题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维他命 ...

  4. 洛谷P1460 [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins

    传送门:https://www.luogu.com.cn/problem/P1460 写这道题题解是因为对于我对题目的理解是对的,思路也比较清晰.但是在DFS代码的技巧上有欠缺导致无法写出完全AC的代 ...

  5. P1460 健康的荷斯坦奶牛 Healthy Holsteins (简单的dfs)

    题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维他命 ...

  6. P1460 健康的荷斯坦奶牛

    题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维他命 ...

  7. P1460 健康的荷斯坦奶牛 Healthy Holsteins (dfs)

    重点 之前一直在想 怎么就想不到呢 for(int i=x;i<g;i++)//要从上一个搜的最后一个数开始(因为已经知道前面的没用了) 不然会重复搜 浪费时间(重点剪枝) 不从x开始会超时2个 ...

  8. Java P1460 健康的荷斯坦奶牛 Healthy Holsteins

    题目链接 dfs题目 import java.util.*; import java.math.*; public class Main {public static int[] dx={1,1,-1 ...

  9. 洛谷 - 试炼场(全部题目备份)

    整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...

最新文章

  1. Linux上DNS实现工具之bind详叙
  2. npm运行报错:Error: ENOSPC: System limit for number of file watchers reached
  3. Android属性动画 AnimatorSet
  4. 自建Kubernetes集群如何使用弹性容器实例ECI
  5. 数据库-索引-普通索引-唯一索引
  6. SAP 电商云 Spartacus UI 同 SAP Customer Data Cloud 的集成
  7. Telnet初试(本地测试)
  8. 2019 年入门AI算法工程师,你需要掌握什么技能?
  9. 易到用车:服务器遭到连续攻击 被索要巨额比特币
  10. NASM汇编语言与计算机系统11-9号与0X16号中断显示键盘输入(int)
  11. T5: Text-To-Text Transfer Transformer
  12. IGBT功率半导体器件
  13. 暴力破解带有密码的压缩文件
  14. web项目登录报错:HTTP Status 500 - Error instantiating servlet class com.gxuwz.medical.web.servlet.LoginSer
  15. [前端积累]--响应式布局(三)
  16. PHP对接语音验证码接口代码示例
  17. 使用代理后,雷鸟连接qq邮箱
  18. 添加打印机怎样锁定计算机名称,怎么安装打印机?_百度经验
  19. Mysql有四种事务隔离级别,详解脏读、不可重复读、幻读
  20. 英国女王正式宣布开启国家网络安全中心

热门文章

  1. Elasticsearch集成(二)
  2. mysql 5.6 rpm 下载_mysql5.6 rpm包下载
  3. Python数据结构之算法引入
  4. appendChild()方法
  5. Java中split的用法,分割String字符串
  6. LATTICE FPGA MICO32 uCOS开发流程
  7. 常见的接口测试面试题
  8. 数据仓库之主题模型之IBM与TD金融模型
  9. 详细设计和概要设计的思考
  10. 查看 Windows 10 快捷键 占用 VSCode 多行编辑 ctrl alt uparrow