1 条题解
-
0
C++ :
#include<bits/stdc++.h> using namespace std; int s,n,w[51],f[51]; bool flag; void dfs(int i,int step){ f[step] = w[i]; int sum = 0; for(int k=1;k<=step;k++){ sum = sum + f[k]; } if(sum==s){ flag = 1; return; } for(int k=i+1;k<=n;k++){ if(flag==0 && sum<s) dfs(k,step+1); } } int main(){ cin>>s>>n; for(int i=1;i<=n;i++){ cin>>w[i]; } for(int i=1;i<=n;i++){ memset(f,0,sizeof(f)); dfs(i,1); if(flag==1) break; } if(flag==1) cout<<"YES"; else cout<<"NO"; return 0; }
- 1
信息
- ID
- 2563
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者