首页 > 其他分享 >P1460 健康的荷斯坦奶牛 Healthy Holsteins

P1460 健康的荷斯坦奶牛 Healthy Holsteins

时间:2024-08-13 09:55:09浏览次数:9  
标签:维他命 iy ix Healthy Holsteins P1460 饲料 len int

题目描述

点这里

文字描述

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

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

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

输入格式

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

第三行一个整数 g,表示可用来喂牛的饲料的种数。
下面 g 行,第 n 行表示编号为 n 饲料包含的各种维他命的量的多少。

输出格式

输出文件只有一行,包括牛必需的最小的饲料种数 $p$;后面有 $p$ 个数,表示所选择的饲料编号(按从小到大排列)。

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

解题思路

1.先枚举个数len(选多少种饲料)

2.用dfs枚举在g个中选len个(next_permutation也可以)

3.如果选的饲料的v种维他命均>=牛每天需要的每种维他命的最小量,
就把这种选法对应的所有饲料编号存下来作为一种方案

4.最后把所有方案按字典序排好,取最小的输出

代码

没办法,就是喜欢(只会)STL

#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[30];
int b[20][30];
int p[20];
int sum[30];
signed main() {
	int v;
	cin >> v;
	for (int i = 1; i <= v; i++)
		cin >> a[i];
	int g;
	cin >> g;
	for (int i = 1; i <= g; i++) {
		for (int j = 1; j <= v; j++) {
			cin >> b[i][j];
		}
	}
	vector<set<int> > ans;
	set<int> tmp;
	for (int len = 0; len <= g; len++) {
		memset(p, 0, sizeof p);
		int cnt = g;
		for (int i = 0; i < len; i++) {
			p[cnt] = 1;
			cnt--;
		}
		do {
			memset(sum, 0, sizeof sum);
			for (int i = 1; i <= g; i++) {
				if (p[i] == 1) {
					for (int j = 1; j <= v; j++) {
						sum[j] += b[i][j];
					}
				}
			}
			bool ok = true;
			for (int i = 1; i <= v; i++) {
				if (sum[i] < a[i]) {
					ok = false;
					break;
				}
			}
			if (ok) {
				tmp.clear();
				for (int i = 1; i <= g; i++) {
					if (p[i] == 1) {
						tmp.insert(i);
					}
				}
				ans.push_back(tmp);
			}
		} while (next_permutation(p + 1, p + g + 1));
	}
	sort(ans.begin(), ans.end(), [](set<int> x, set<int> y)->bool{
		if (x.size() != y.size()) {
			return x.size() < y.size();
		}
		for (auto ix = x.begin(), iy = y.begin(); ix != x.end() && iy != y.end(); ix++, iy++) {
			if (*ix != *iy) {
				return *ix < *iy;
			}
		}
		return 0;
	});
	cout << ans.front().size() << " ";
	for (auto i = ans.front().begin(); i != ans.front().end(); i++) {
		cout << *i << " ";
	}
	return 0;
}

戳他

点赞的dalao AK IOI!(ง•_•)ง

标签:维他命,iy,ix,Healthy,Holsteins,P1460,饲料,len,int
From: https://www.cnblogs.com/algorithm-hu/p/18356260

相关文章

  • vCenter登录失败报500错误:no healthy upstream
    过了个周末登录vCenter的时候提示:HTTP状态500-内部服务器错误;重启服务后提示:nohealthyupstream。如下图:看到这个情况,肯定就是部分不服务异常了或者压根就没有启动。至于说因为啥异常还不得而知。想着登录管理服务(访问端口:5480)重启一下异常服务,结果提示证书过期。问题......
  • 记一次k8s etcd报错Unhealthy
    使用命令某个节点ectd不健康#kubectlgetcsNAMESTATUSMESSAGEERRORcontroller-managerHealthy......
  • Robust mapping of spatiotemporal trajectories and cell–cell interactions in hea
    这篇论文主要介绍了一种名为"Robustmappingofspatiotemporaltrajectoriesandcell-cellinteractionsinhealthyanddiseasedtissues"的新方法,该方法能够在健康和疾病组织中对细胞过程进行可靠的映射,同时研究细胞间的相互作用。在生物组织中,细胞类型、局部组成和状态、分......
  • 初中英语优秀范文100篇-091How to Eat in a Healthy Way-如何以健康的方式饮食
    PDF格式公众号回复关键字:SHCZFW091记忆树1Hello,everybody.I'mLiHua.翻译大家好,我是李华简化记忆李华句子结构Hello,everybody.这是一个常见的打招呼的方式,通常用于引起听众的注意。在这里,“Hello”是一个感叹词,而“everybody”是一个代词,表示“每个人”,表示......
  • 初中英语优秀范文100篇-026Healthy Food-健康的食物
    PDF格式公众号回复关键字:SHCZFW026记忆树1Healthisveryimportantforourbody.翻译健康对我们的身体非常重要。简化记忆健康句子结构主语:Health(健康)Health作为句子的主语,表示健康这个概念。谓语:is(是)is作为连系动词,用来连接主语和表语,表达等同、状态或......
  • 初中英语优秀范文100篇-025How to Keep Healthy-如何保持健康
    PDF格式公众号回复关键字:SHCZFW025记忆树1Nowadays,moreandmorepeopleknowtheimportanceofkeepinghealthy.翻译现在,越来越多的人知道保持健康的重要性。简化记忆重要句子结构这个句子是一个简单句,其中"Nowadays"是时间状语,表示现在的情况;"moreandmor......
  • kubelet pleg is not healthy
    k8s1.19.0PLEG全称是PodLifecycleEventGenerator即Pod生命周期事件生成器,定时检查Pod状态,上报PodEvent事件。PLEGStart启动一个协程,每隔1s调用一次relist,根据最新的PodStatus生成PodLiftCycleEvent,通过eventChannel送到syncLoop消费,由syncPod来触发Pod同步处理,达到期望......
  • VCSA7.0访问提示no healthy upstream
    问题:打开VCSA7.0登录页面提示“nohealthyupstream”解决方法:一、登录https://172.22.1.250:5480设备管理后台,发现整体运行状况有警示,按照提示先解决log盘空间问题, 1、登录esxi主机查询vcenter在那个ESXI主机上,然后登录vcenter主机,或者通过ssh连接vcenter主机。 2、编辑......
  • rke up etcd报错: etcd cluster is unhealthy
    问题添加node,rkeup报错:WARN[0197][etcd]host[10.7.0.51]failedtochecketcdhealth:failedtoget/healthforhost[10.7.0.51]:Get"https://10.7.0.51:2379/health":remoteerror:tls:badcertificateWARN[0290][etcd]host[10.7.0.52]failedtoch......
  • kubectl get cs显示unhealthy的解决办法
    01、问题描述使用kubectlgetcs查看K8s组件状态,发现scheduler和controller-manager状态为Unhealthy,但集群可以正常使用。[root@k8s-master~]#kubectlgetcsWarning:v1ComponentStatusisdeprecatedinv1.19+NAMESTATUSMESSAGE......