P1460 健康的荷斯坦奶牛 Healthy Holsteins

题目描述

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

给出牛所需的最低的维他命量,输出喂给牛需要哪些种类的饲料,且所需的饲料剂量最少。

维他命量以整数表示,每种饲料最多只能对牛使用一次,数据保证存在解。

输入输出格式

输入格式:

第1行:一个整数V(1<=V<=25),表示需要的维他命的种类数。

第2行:V个整数(1<=每个数<=1000),表示牛每天需要的每种维他命的最小量。

第3行:一个整数G(1<=G<=15),表示可用来喂牛的饲料的种数。

下面G行,第n行表示编号为n饲料包含的各种维他命的量的多少。

输出格式:

输出文件只有一行,包括

牛必需的最小的饲料种数P

后面有P个数,表示所选择的饲料编号(按从小到大排列)。

如果有多个解,输出饲料序号最小的(即字典序最小)。

输入输出样例

输入样例#1: 复制

4
100 200 300 400
3
50  50  50  50
200 300 200 300
900 150 389 399

输出样例#1: 复制

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相关推荐

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

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

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

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

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

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

  4. 洛谷P1460 健康的荷斯坦奶牛

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

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

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

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

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

  7. [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins

    链接 洛谷 USACO 大意 给定nnn种维生素的需求量,对于第iii种维生素的需求量,记为a[i]a[i]a[i] 给定mmm种饲料,对于第iii种饲料的第jjj种维生素,其能增加b[i][j]b[ ...

  8. USACO 2.1 健康的荷斯坦奶牛 Healthy Holsteins

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

  9. 洛谷:P1460 [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins(DFS)

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

最新文章

  1. 爱立信将在加拿大建立人工智能实验室
  2. 在Map 3D显示管理器中更改当前地图的名字
  3. Windows Phone 7项目实战之记事本(二)
  4. Struts2之OGNL表达式语言
  5. 滴滴北京网约车将涨价 官方解释:为了平衡供需矛盾
  6. 《深入解析sas:数据处理、分析优化与商业应用》一3.5 SAS常用函数
  7. java final对象_java面向对象基础_final详细介绍
  8. sap 发送mesage_SAP系统和微信集成的系列教程之九:如何将微信用户发送给微信公众号的内容自动转存到SAP C4C系统...
  9. docker 监控之 cadvisor
  10. Mac 软件使用心得 极简软件清单
  11. js的常见的三种密码加密方式-MD5加密、Base64加密和解密和sha1加密详解总结
  12. 牛客网--16128--小名的回答
  13. coffeescript html5,CoffeeScript函数
  14. 胡闹厨房2 for Mac厨房模拟游戏又名煮糊了2
  15. 升级到Chipmunk(2021.2.1)版本 遇到Run按钮不可用
  16. daytime协议的服务器和客户端程序,用socket套接字实现daytime协议服务器和客户端程序.doc...
  17. 消息队列和ZeroMQ原理和应用
  18. 掀开USB存储设备自动运行的面纱(精简版)
  19. Qt下实现XML、INI、JSON的文件读写示例开发
  20. 阿里云 https ssl 网站配置 备案记录

热门文章

  1. 中国平安增持华夏幸福5.69%股权 看好长期战略协同
  2. bandgap的理解(内部带隙电压基准)
  3. HMM-前向后向算法
  4. Friedman 检验后的two-tailed Nemenyi test和the two-tailed Bonferroni-Dunn test的关键值
  5. 4、树莓派音频——jackd命令应用
  6. 您目前无法访问XXXX,因为此网站使用了HSTS
  7. js解析json字符串为json对象,js解析json的6种方法
  8. 【JavaMap接口】特点实现类HashMap常用方法
  9. mo-quarter-picker:基于 Vue2 和 ElementUI 的季度范围选择器
  10. OpenCV - GrabCut 算法抠图(Python实现)