P1460 [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins
由于,数据范围比较小,所以可以枚举出所有饲料的选择情况(),再取其中字典序最小的,饲料种数最少的方案
#include<iostream>
#include<vector>
using namespace std;
const int N = 25;
vector<int> res, backup;
vector<int> a;
vector<vector<int>> b;
int v, g;
void dfs(int u){
if(u == g){
// 是否满足奶牛的需要、比较一下字典序、比较一下饲料的个数
bool flag = 1;
for(int i = 0; i < v; i ++){
int sum = 0;
for(int j = 0; j < backup.size(); j ++)
sum += b[backup[j]][i];
if(sum < a[i]) flag = 0;
}
if(flag){
if(res.size() == 0 || res.size() > backup.size())
res = backup;
else if(res.size() == backup.size())
if(res[0] > backup[0]) res = backup;
}
return;
}
dfs(u + 1);
backup.push_back(u);
dfs(u + 1);
backup.pop_back();
}
int main(){
cin >> v;
for(int i = 0; i < v; i ++){
int t;
cin >> t;
a.push_back(t);
}
cin >> g;
for(int i = 0; i < g; i ++){
vector<int> c;
for(int j = 0; j < v; j ++){
int t;
cin >> t;
c.push_back(t);
}
b.push_back(c);
}
dfs(0);
cout << res.size() << ' ';
for(auto t : res) cout << t + 1 << ' ';
return 0;
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· 软件产品开发中常见的10个问题及处理方法
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· Vite CVE-2025-30208 安全漏洞
· MQ 如何保证数据一致性?
· 《HelloGitHub》第 108 期