Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
68210 | 王籽易 | 贪婪戈尔曼 | C++ | 解答错误 | 20 | 2 MS | 328 KB | 614 | 2023-02-03 12:12:01 |
#include<bits/stdc++.h> using namespace std; long long ans=0x3f3f3f3f3f3f3f3f,n,s,b,x1[1001],x2[1001],w[1001],st[1001],fs[51][51]; long long dfs(long long x,long long y,long long wt){ if(x<=0&&y<=0){ ans=min(ans,wt); return ans; } if(x<=0) x=0; if(y<=0) y=0; if(fs[x][y]!=0) return fs[x][y]; if(wt>=ans) return ans; for(int i=1;i<=n;i++){ if(st[i]==0){ st[i]=1; fs[x][y]=(dfs(x-x1[i],y-x2[i],wt+w[i]*2),ans); st[i]=0; } } return fs[x][y]; } int main(){ cin>>n>>s>>b; for(int i=1;i<=n;i++){ cin>>x1[i]>>x2[i]>>w[i]; } cout<<dfs(s,b,0)<<endl; return 0; }