当前位置: 首页 > java >正文

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

题目描述

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

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

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

输入格式

第一行一个整数 v,表示需要的维他命的种类数。
第二行 v 个整数,表示牛每天需要的每种维他命的最小量。

第三行一个整数 g,表示可用来喂牛的饲料的种数。
下面 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

说明/提示

【数据范围】
对于 100% 的数据,1≤v≤25,1≤g≤15。
输入的所有整数在 [1,1000] 范围内。

#include<bits/stdc++.h>
using namespace std;
const int N = 30,M = 20;
int val[N];//记录牛每天需要的每种维他命的最小量
int ans = 1e9;//存放最少需要多少种饲料
int cnt[M];//存放最优解 使用的是那种饲料
int st[M];//存放当前选了那种饲料
int g[M][N];//存放饲料的种类和每种饲料包含维他命的量
int n,m;bool check(int x){//遍历每一头牛是否都能满足for(int i = 1;i<=n;i++){int sum = 0;//记录所选饲料的种类能否满足当前这头牛所需要的最小维他命量for(int j = 1;j<=x;j++){ //选了x种饲料  st[j]存放的是那种饲料sum+=g[st[j]][i];}if(sum < val[i])  return false; //如果无法满足当前这头牛这该方案不合法}return true; //当前方案可以满足所有牛的需求
}
//u表示当前枚举到那种饲料,s表示饲料种类的个数
void dfs(int u,int s){if(u > m){if(check(s) && s < ans){ //如果当前方案可以满足所有的牛需要的维他命最小量 并且种类数量小于当前的种类数量ans = s;for(int i = 1;i<=s;i++){ // 记录所选的方案cnt[i] = st[i];}}return ;}st[s+1] = u;  //选这种饲料dfs(u+1,s+1);st[s+1] = 0;  //不选这种饲料dfs(u+1,s);
}int main(){cin>>n;for(int i = 1;i<=n;i++) cin>>val[i];cin>>m;for(int i = 1;i<=m;i++){for(int j = 1;j<=n;j++)cin>>g[i][j];}dfs(1,0);cout<<ans<<" ";for(int i = 1;i<=ans;i++) cout<<cnt[i]<<" ";return 0;
}
http://www.xdnf.cn/news/5695.html

相关文章:

  • 【人工智能-agent】--Dify中MCP工具存数据到MySQL
  • 数据库实验报告 系统E-R图设计 2
  • [Git]ssh下用Tortoisegit每次提交都要输密码
  • el-table滚动条,都悬浮在页面的底层显示
  • 区块链技术构建电子发票平台“税链”
  • 2025年5月9日
  • CSPM-3 与 CSPM-4:项目管理认证的进阶之路
  • 【AutoGen革命】多智能体协作系统的架构设计与工程实践
  • 什么是数据集市(Data Mart)?
  • 链表面试题7之相交链表
  • Git日志信息
  • MyTinySTL
  • 【idea】快捷键ctrl+shift+F(Find in files)不起作用
  • C++.Windows图形
  • 养生:开启健康生活的全新篇章
  • C++类和对象--中阶
  • js 画立方体软件开发日记2
  • QuickList
  • Docker编排工具详解:Docker Compose与Docker Swarm
  • 08.webgl_buffergeometry_attributes_none ,three官方示例+编辑器+AI快速学习
  • 电子工程领域常见的缩略语及其对应的中文和英文释义
  • Python-Flask-Dive
  • 【Java学习笔记】多态参数
  • 深度强化学习有什么学习建议吗?
  • VC++快捷使用安装libcurl
  • NY135NY141美光固态闪存NY162NY163
  • 歌曲《忘尘谷》基于C语言的歌曲调性检测技术解析
  • 深度学习---常用优化器
  • Nexus 私有仓库 + Nginx 反向代理部署文档
  • 数据结构(五)——串、数组、广义表