5 条题解
-
0
#include<bits/stdc++.h> using namespace std; const int INF=1e9; const int MAXN=25; int d[MAXN]; int n; int min_hp=INF,min_cnt=INF; void dfs(int cnt,int hp) { if(d[1]>=hp) { if(hp<min_hp) { min_hp=hp; min_cnt=cnt; } } for(int i=1;i<=n;i++) { dfs(cnt+1,hp-d[i]); } } int main() { int hp; cin>>hp>>n; for(int i=1;i<=n;i++) { cin>>d[i]; } dfs(0,hp); cout<<min_hp<<endl<<min_cnt; } -
0
#include<bits/stdc++.h> using namespace std; const int INF=1e9; const int MAXN=25; int d[MAXN]; int n; int min_hp=INF,min_cnt=INF; void dfs(int cnt,int hp) { if(d[1]>=hp) { if(hp<min_hp) { min_hp=hp; min_cnt=cnt; } } for(int i=1;i<=n;i++) { dfs(cnt+1,hp-d[i]); } } int main() { int hp; cin>>hp>>n; for(int i=1;i<=n;i++) { cin>>d[i]; } dfs(0,hp); cout<<min_hp<<endl<<min_cnt; } -
0
#include<bits/stdc++.h> using namespace std; const int INF=1e9; const int MAXN=25; int d[MAXN]; int n; int min_hp=INF,min_cnt=INF; void dfs(int cnt,int hp) { if(d[1]>=hp) { if(hp<min_hp) { min_hp=hp; min_cnt=cnt; } } for(int i=1;i<=n;i++) { dfs(cnt+1,hp-d[i]); } } int main() { int hp; cin>>hp>>n; for(int i=1;i<=n;i++) { cin>>d[i]; } dfs(0,hp); cout<<min_hp<<endl<<min_cnt; }
-
-3
include <bits/stdc++.h> using namespace std; int d[25]; int n; int min_hp=1e9,min_cnt=1e9; void dfs(int cnt,int hp) { if(d[1]>=hp) { if(hp<min_hp) { min_hp=hp; min_cnt=cnt; } else if(hp==min_hp) { if(min_cnt>cnt)min_cnt=cnt; } return; } for(int i=1;i<=n;i++) { if(d[i]<hp) { dfs(cnt+1,hp-d[i]); } } } int main() { int hp; cin>>hp>>n; for(int i=1;i<=n;i++) { cin>>d[i]; } sort(d+1,d+1+n); dfs(0,hp); cout<<min_hp<<endl<<min_cnt; return 0; }
- 1
信息
- ID
- 375
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 345
- 已通过
- 89
- 上传者