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
 - 上传者