zoukankan      html  css  js  c++  java
  • 51nod 1268 和为K的组合

    基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题
     收藏
     关注
    给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K。如果可以,输出:"Yes",否则输出"No"。
    Input
    第1行:2个数N, K, N为数组的长度, K为需要判断的和(2 <= N <= 20,1 <= K <= 10^9)
    第2 - N + 1行:每行1个数,对应数组的元素A[i] (1 <= A[i] <= 10^6)
    Output
    如果可以,输出:"Yes",否则输出"No"。
    Input示例
    5 13
    2
    4
    6
    8
    10
    Output示例
    No
     
     
    搜索+回溯
    #include <cstring>
    #include <cstdio>
    bool vis[22],flag;
    int N,K,A[22];
    void dfs(long long sum,int pos)
    {
        if(sum>K) return;
        if(flag) return;
        if(sum==K) {flag=1;return;} 
        for(int i=pos+1;i<=N;i++)
        {
            if(!vis[i])
            {
                vis[i]=1;
                dfs((long long)sum+A[i],i);
                vis[i]=0;
            }
        }
    }
    int main()
    {
        scanf("%d%d",&N,&K);
        for(int i=1;i<=N;i++)
        scanf("%d",&A[i]);
        for(int i=1;i<=N;i++)
        {
            memset(vis,0,sizeof(vis));
            vis[i]=1;
            dfs((long long)A[i],i);
            vis[i]=0;
            if(flag) {printf("Yes");return 0;} 
        }
        printf("No");
        return 0;
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    VS 格式化代码 Ctrl + K, Ctrl + F
    VS NuGet使用
    VS书签的应用
    ASP.Net简单的交互案例
    英文书也没有那么难,跟着例子做,挺有意思的
    .Net强类型视图
    .Net视图机制
    .Net MVC小尝试
    ASP.Net MVC默认目录结构
    .Net中常用的几种ActionResult
  • 原文地址:https://www.cnblogs.com/ruojisun/p/6745437.html
Copyright © 2011-2022 走看看