洛谷 P1460 健康的荷斯坦奶牛 Healthy Holsteins
P1460 健康的荷斯坦奶牛 Healthy Holsteins
题目描述
农民JOHN以拥有世界上最健康的奶牛为傲。他知道每种饲料中所包含的牛所需的最低的维他命量是多少。请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少。
给出牛所需的最低的维他命量,输出喂给牛需要哪些种类的饲料,且所需的饲料剂量最少。
维他命量以整数表示,每种饲料最多只能对牛使用一次,数据保证存在解。
输入输出格式
输入格式:
第1行:一个整数V(1<=V<=25),表示需要的维他命的种类数。
第2行:V个整数(1<=每个数<=1000),表示牛每天需要的每种维他命的最小量。
第3行:一个整数G(1<=G<=15),表示可用来喂牛的饲料的种数。
下面G行,第n行表示编号为n饲料包含的各种维他命的量的多少。
输出格式:
输出文件只有一行,包括
牛必需的最小的饲料种数P
后面有P个数,表示所选择的饲料编号(按从小到大排列)。
如果有多个解,输出饲料序号最小的(即字典序最小)。
输入输出样例
4 100 200 300 400 3 50 50 50 50 200 300 200 300 900 150 389 399
2 1 3
说明
USACO 2.1
翻译来自NOCOW
思路:搜索。
#include<queue> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int v,g; struct nond{int f[30]; }vv[20]; int num[30],pos[30]; int ans[30],vis[30]; int judge(){for(int i=1;i<=v;i++)if(pos[i]<num[i]) return false;return true; } void dfs(int tot,int sum,int pre){if(sum==tot){if(judge()){cout<<tot<<" ";for(int i=1;i<=tot;i++) cout<<ans[i]<<" ";exit(0);}return ;}for(int i=pre+1;i<=g;i++)if(!vis[i]){vis[i]=1;ans[sum+1]=i;for(int j=1;j<=v;j++) pos[j]+=vv[i].f[j];dfs(tot,sum+1,i);for(int j=1;j<=v;j++) pos[j]-=vv[i].f[j];vis[i]=0;} } int main(){scanf("%d",&v);for(int i=1;i<=v;i++) scanf("%d",&num[i]);scanf("%d",&g);for(int i=1;i<=g;i++)for(int j=1;j<=v;j++)scanf("%d",&vv[i].f[j]);for(int i=1;i<=g;i++){memset(vis,0,sizeof(vis));memset(pos,0,sizeof(pos));dfs(i,0,0);} }
转载于:https://www.cnblogs.com/cangT-Tlan/p/8000778.html
洛谷 P1460 健康的荷斯坦奶牛 Healthy Holsteins相关推荐
- 洛谷P1460 健康的荷斯坦奶牛 Healthy Holsteins
题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维他命 ...
- 【搜索】洛谷 P1460 健康的荷斯坦奶牛 Healthy Holsteins
题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维他命 ...
- P1460 健康的荷斯坦奶牛 Healthy Holsteins (简单的dfs)
题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维他命 ...
- 洛谷P1460 健康的荷斯坦奶牛
解题思路: 首先想到的是搜索,搜索使用哪几种符合条件的饲料,找最小的花费.由于dfs的特点,先找到的方案一定是字典序最小的. 但是暴力搜索会超时,需要剪枝,详见注释 #include<iostr ...
- 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 ...
- [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins
链接 洛谷 USACO 大意 给定nnn种维生素的需求量,对于第iii种维生素的需求量,记为a[i]a[i]a[i] 给定mmm种饲料,对于第iii种饲料的第jjj种维生素,其能增加b[i][j]b[ ...
- USACO 2.1 健康的荷斯坦奶牛 Healthy Holsteins
健康的荷斯坦奶牛 题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛 ...
- 洛谷:P1460 [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins(DFS)
题目描述 农民 John 以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少. 给出牛所需的最低的维 ...
最新文章
- 爱立信将在加拿大建立人工智能实验室
- 在Map 3D显示管理器中更改当前地图的名字
- Windows Phone 7项目实战之记事本(二)
- Struts2之OGNL表达式语言
- 滴滴北京网约车将涨价 官方解释:为了平衡供需矛盾
- 《深入解析sas:数据处理、分析优化与商业应用》一3.5 SAS常用函数
- java final对象_java面向对象基础_final详细介绍
- sap 发送mesage_SAP系统和微信集成的系列教程之九:如何将微信用户发送给微信公众号的内容自动转存到SAP C4C系统...
- docker 监控之 cadvisor
- Mac 软件使用心得 极简软件清单
- js的常见的三种密码加密方式-MD5加密、Base64加密和解密和sha1加密详解总结
- 牛客网--16128--小名的回答
- coffeescript html5,CoffeeScript函数
- 胡闹厨房2 for Mac厨房模拟游戏又名煮糊了2
- 升级到Chipmunk(2021.2.1)版本 遇到Run按钮不可用
- daytime协议的服务器和客户端程序,用socket套接字实现daytime协议服务器和客户端程序.doc...
- 消息队列和ZeroMQ原理和应用
- 掀开USB存储设备自动运行的面纱(精简版)
- Qt下实现XML、INI、JSON的文件读写示例开发
- 阿里云 https ssl 网站配置 备案记录
热门文章
- 中国平安增持华夏幸福5.69%股权 看好长期战略协同
- bandgap的理解(内部带隙电压基准)
- HMM-前向后向算法
- Friedman 检验后的two-tailed Nemenyi test和the two-tailed Bonferroni-Dunn test的关键值
- 4、树莓派音频——jackd命令应用
- 您目前无法访问XXXX,因为此网站使用了HSTS
- js解析json字符串为json对象,js解析json的6种方法
- 【JavaMap接口】特点实现类HashMap常用方法
- mo-quarter-picker:基于 Vue2 和 ElementUI 的季度范围选择器
- OpenCV - GrabCut 算法抠图(Python实现)