zoukankan      html  css  js  c++  java
  • 【刷题记录】部分和问题

    -------------------------部分和问题------------------------------------

    【题目大意】

             给定几个整数,判断是否 可以从中选出若干数,使它们的和恰好为k。

    【输入要求】

             一个整数n,接下来一行有n个数,代表a[i],最后给出整数k。

    【输出要求】

            Yse或No

    【输入样例1】

    4
    1 2 4 7
    13
    

     【输出样例1】

    Yes
    

     【输入样例2】

    4
    1 2 4 7
    15
    

     【输出样例2】

    No
    

     【数据范围】

             1<=n<=20    -10^8<=a[i]<=10^8    -10^8<=k<=10^8

     【分析】很简单的搜索呀^_^

     【代码】

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    const int maxn=21;
    int a[maxn],n,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;
    } 
    int main()
    {
    	cin>>n;
    	for(int i=0;i<n;i++) cin>>a[i];
    	cin>>k;
    	if(dfs(0,0)) cout<<"Yes";
    	else  cout<<"No";
    	//system("pause");
    	return 0;
    }
    
  • 相关阅读:
    Python中的时间
    Python + Selenium 自动化环境搭建过程
    HTML手写课程表,练基础
    temp2
    Jenkins配置文件
    Jenkins安装Slave节点
    Jenkins管理插件
    常见的linux上的服务重启脚本
    测试感慨
    docker的安装
  • 原文地址:https://www.cnblogs.com/lijiaxin-blog-cpp/p/6203497.html
Copyright © 2011-2022 走看看