Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
123955 黄一航 健康的奶牛 C++ 通过 100 1 MS 252 KB 1016 2024-01-23 10:30:31

Tests(10/10):


#include <bits/stdc++.h> #define int long long using namespace std; const int maxn = 30; int minn = 1e9; int ans[maxn]; int n,v[maxn],g,w[maxn][maxn]; int now[maxn],cpy[maxn]; bool check() { for (int i = 1; i <= n; i++) if (now[i] < v[i]) return 0; return 1; } void dfs(int res,int pos) { if (res >= minn) return; if (check()) { minn = res; memcpy(ans,cpy,sizeof ans); return; } for (int i = pos; i <= g; i++) { for (int j = 1; j <= n; j++) now[j] += w[i][j]; cpy[res] = i; dfs(res + 1,i + 1); for (int j = 1; j <= n; j++) now[j] -=w [i][j]; } return; } signed main() { cin >> n; int i,j; for (i = 1; i <= n; i++) cin >> v[i]; cin >> g; for (i = 1; i <= g; i++) for (j = 1; j <= n; j++) cin >> w[i][j]; dfs(1,1); printf("%lld ",minn - 1); for (i = 1; i < minn; i++) printf("%lld ",ans[i]); return 0; }


测评信息: