「并发原理专题」AQS的技术体系之CLH、MCS锁的原理及实现

十分钟上手-搭建vue开发环境(新手教程)

  返回  

算法入门 1.部分和问题

2021/8/21 15:36:29 浏览:

给定n个数据

问是否可以从中挑几个数据使其和为k

#include<iostream>
using namespace std;
int n;
typedef long long  ll;
const int maxn=1e8+10;
int a[maxn];
ll k;
bool dfs(int i,int sum){
    if(i==n) return sum==k;
    if(dfs(i+1,sum)) return true;
    if(dfs(i+1,sum+a[i])) return true;
    return false;
 }
void solve(){
    if(dfs(0,0)) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
}
int main(){
    int t;
    cin>>t;
    while(t--){
        cin>>n;
        for(int i=0;i<n;i++) cin>>a[i];
        cin>>k;
        solve();
    }
}

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号