Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
123643 刘星辰liuxingchen 健康的奶牛 C++ 解答错误 0 2 MS 268 KB 957 2024-01-23 08:47:52

Tests(0/10):


#include<bits/stdc++.h> using namespace std; int n; int a[30]; int m; int b[20][30]; int path[30]; int Min; vector<int> Path; vector<int> ans; bool abc() { for(int i=1;i<=n;i++) { if(path[i]<a[i]) { return 0; } } return 1; } void dfs(int now,int MIN) { if(abc()==1) { if(now<Min) { Min=now; ans.clear(); for(int i=0;i<Path.size();i++) { ans.push_back(Path[i]); } } return ; } for(int i=MIN;i<=m;i++) { Path.push_back(i); for(int j=1;j<=n;j++) { path[j]+=b[i][j]; } dfs(now+1,i+1); Path.pop_back(); for(int j=1;j<=n;j++) { path[j]-=b[i][j]; } } } int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } cin>>m; for(int i=1;i<=m;i++) { for(int j=1;j<=n;j++) { cin>>b[i][j]; } } dfs(0,1); cout<<Min; cout<<" "; for(int i=0;i<ans.size();i++) { cout<<ans[i]; cout<<" "; } return 0; }


测评信息: