首页 > 编程语言 >Problem P27. [算法课回溯]目标和

Problem P27. [算法课回溯]目标和

时间:2022-10-14 22:35:00浏览次数:57  
标签:target idx nums int sum P27 callBackSeach 回溯 Problem

回溯法比较简单易懂,耗时比较长,也能过。有动态规划的解法大家可以自己想一想。

#include<iostream>
#include<bits/stdc++.h>
#include<cstdio>
#include<string>

using namespace std;

int cnt = 0;

void callBackSeach(vector<int> &nums, int idx, int sum, int target) {
    if (idx == nums.size()) {
        if (sum == target) {
            cnt++;
        }
        return;
    }
    callBackSeach(nums, idx+1, sum+nums[idx], target);
    callBackSeach(nums, idx+1, sum-nums[idx], target);
};

int main()
{
    vector<int> nums;
    int target;
    while (1) {
        int n;
        int ret = scanf("%d", &n);
        if (ret == EOF) {
            break;
        }
        nums.push_back(n);
    }
    target = nums.back();
    nums.pop_back();
    callBackSeach(nums, 0, 0, target);
    cout << cnt << endl;
    return 0;
}

标签:target,idx,nums,int,sum,P27,callBackSeach,回溯,Problem
From: https://www.cnblogs.com/understanding-friends/p/16793214.html

相关文章

  • 回溯 子集问题
    子集问题的特征相当于求遍所有的叶子节点,所以与前边的组合问题,分割问题,都可以抽象为收集树的节点的问题,区别是子集是求所有的叶子节点;leetcode78给你一个整数数组 num......
  • 代码随想录训练营|Day 24|回溯算法,77
    回溯算法理论基础回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如......
  • 高精度加法(A+B problem)
     /*---A+Bproblem高精度---*/#include<bits/stdc++.h>usingnamespacestd;intmax(inta,intb){ returna>=b?a:b;}intmain(void){ chara[505],b[505]......
  • 八皇后——回溯法
    八皇后问题(英文:Eightqueens),是由国际象棋棋手马克斯·贝瑟尔于1848年提出的问题,是回溯算法的典型案例。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用......
  • 回溯 切割问题
    leetcode131问题描述:给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。回文串是正着读和反着读都一样的字符串。示例......
  • 【四期陶富强】CCF-A(AAAI 20)Federated learning for vision-and-language grounding
    [1] LiuF,WuX,GeS,etal.Federatedlearningforvision-and-languagegroundingproblems[C]//ProceedingsoftheAAAIConferenceonArtificialIntelligence.......
  • 回溯 组合问题(三)
    leetcode17题目描述:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下(与电话按键相同)。注意1不对......
  • 回溯 组合问题(二)
    题目描述:leetcode216找出所有相加之和为 n的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次 返回所有可能的有效组合的列表。该列表不能......
  • Problem P25. [算法课回溯]找出所有子集的异或总和再求和
    简单的一道回溯题,具体解法看代码,有注释#include<iostream>#include<bits/stdc++.h>#include<cstdio>#include<string>usingnamespacestd;intret=0;void......
  • 洛谷 P2766【网络流】【线性DP】
    摘自网络流\(24\)题官方题解。第一问:直接\(O(n^2)\)DP求解最长不下降子序列即可。第二问:使用类似于酒店之王的思想,将点\(i\)拆成两个点\(i_1\),\(i_2\)。然后......