Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
123733 廖悦扬 健康的奶牛 C++ 通过 100 2 MS 456 KB 1186 2024-01-23 09:14:21

Tests(10/10):


#include <bits/stdc++.h> using namespace std; int v, g, a[105][105], b[105], ans[105]; vector<vector<int> > results; bool cmp(vector<int> a, vector<int> b) { if (a.size() != b.size()) return a.size() < b.size(); for (int i=0; i<a.size(); i++) { if (a[i] < b[i]) return true; if (a[i] > b[i]) return false; } return true; } void dfs(int lst, vector<int> cur) { for (int i=lst+1; i<=g; i++) { cur.push_back(i); for (int j=1; j<=v; j++) { ans[j] += a[i][j]; } bool flag = true; for (int j=1; j<=v; j++) { if (ans[j] < b[j]) { flag = false; break; } } if (flag) { results.push_back(cur); }else { dfs(i, cur); } for (int j=1; j<=v; j++) { ans[j] -= a[i][j]; } cur.erase(cur.end()-1); } } signed main() { scanf("%d", &v); for (int i=1; i<=v; i++) scanf("%d", &b[i]); scanf("%d", &g); for (int i=1; i<=g; i++) { for (int j=1; j<=v; j++) { scanf("%d", &a[i][j]); } } dfs(0, vector<int>()); sort(results.begin(), results.end(), cmp); printf("%d ", results[0].size()); for (int i=0; i<results[0].size(); i++) { printf("%d ", results[0][i]); } return 0; }


测评信息: