洛谷P1460 健康的荷斯坦奶牛
解题思路:
首先想到的是搜索,搜索使用哪几种符合条件的饲料,找最小的花费。由于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 健康的荷斯坦奶牛相关推荐
- 洛谷 P1460 健康的荷斯坦奶牛 Healthy Holsteins
P1460 健康的荷斯坦奶牛 Healthy Holsteins 题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保 ...
- 洛谷P1460 健康的荷斯坦奶牛 Healthy Holsteins
题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维他命 ...
- 【搜索】洛谷 P1460 健康的荷斯坦奶牛 Healthy Holsteins
题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维他命 ...
- 洛谷P1460 [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins
传送门:https://www.luogu.com.cn/problem/P1460 写这道题题解是因为对于我对题目的理解是对的,思路也比较清晰.但是在DFS代码的技巧上有欠缺导致无法写出完全AC的代 ...
- P1460 健康的荷斯坦奶牛 Healthy Holsteins (简单的dfs)
题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维他命 ...
- P1460 健康的荷斯坦奶牛
题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维他命 ...
- P1460 健康的荷斯坦奶牛 Healthy Holsteins (dfs)
重点 之前一直在想 怎么就想不到呢 for(int i=x;i<g;i++)//要从上一个搜的最后一个数开始(因为已经知道前面的没用了) 不然会重复搜 浪费时间(重点剪枝) 不从x开始会超时2个 ...
- Java P1460 健康的荷斯坦奶牛 Healthy Holsteins
题目链接 dfs题目 import java.util.*; import java.math.*; public class Main {public static int[] dx={1,1,-1 ...
- 洛谷 - 试炼场(全部题目备份)
整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...
最新文章
- Linux上DNS实现工具之bind详叙
- npm运行报错:Error: ENOSPC: System limit for number of file watchers reached
- Android属性动画 AnimatorSet
- 自建Kubernetes集群如何使用弹性容器实例ECI
- 数据库-索引-普通索引-唯一索引
- SAP 电商云 Spartacus UI 同 SAP Customer Data Cloud 的集成
- Telnet初试(本地测试)
- 2019 年入门AI算法工程师,你需要掌握什么技能?
- 易到用车:服务器遭到连续攻击 被索要巨额比特币
- NASM汇编语言与计算机系统11-9号与0X16号中断显示键盘输入(int)
- T5: Text-To-Text Transfer Transformer
- IGBT功率半导体器件
- 暴力破解带有密码的压缩文件
- web项目登录报错:HTTP Status 500 - Error instantiating servlet class com.gxuwz.medical.web.servlet.LoginSer
- [前端积累]--响应式布局(三)
- PHP对接语音验证码接口代码示例
- 使用代理后,雷鸟连接qq邮箱
- 添加打印机怎样锁定计算机名称,怎么安装打印机?_百度经验
- Mysql有四种事务隔离级别,详解脏读、不可重复读、幻读
- 英国女王正式宣布开启国家网络安全中心