首页 > 试题广场 >

求和

[编程题]求和
  • 热度指数:21129 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来

输入描述:
每个测试输入包含2个整数,n和m


输出描述:
按每个组合的字典序排列输出,每行输出一种组合
示例1

输入

5 5

输出

1 4<br/>2 3<br/>5
头像 健康快乐最重要
发表于 2020-03-08 19:03:52
dfs真的好难哦。递归真的好难哦。这道题用dfs+回溯逐个遍历结果集。 通过不断的遍历每一个结果,然后求解。建议按照代码在脑子里走一遍。 #include<iostream> #include<vector> using namespace std; vector<i 展开全文
头像 软日20182073
发表于 2022-02-16 21:56:23
/** * 递归时使用String记录,后续去重有点麻烦,欢迎斧正! */ import java.io.*; import java.util.*; public class Main{ static int m; // 存放可行解字符串,存在重复解 static Arra 展开全文
头像 软日20182073
发表于 2022-02-16 22:04:50
原来不用vis数组也可哈哈,不用去去重了,更新版! import java.io.*; import java.util.*; public class Main{ static int m, n; static ArrayList<String> strList = n 展开全文
头像 大厂算法岗必拿下
发表于 2021-09-19 03:57:01
这是求和得常用DFS回溯套路 #include<bits/stdc++.h> using namespace std; void dfs(vector<vector<int>>& ans, vector<int> &res,int 展开全文
头像 郑州大学
发表于 2023-05-14 23:12:35
import java.util.*; public class Main { /** * 解题思路: (深度优先算法dfs) * 还是那句总结的话: * 寻找最优多用动态规划 * 输出所有情况多用dfs * 因为本题是需要按字典序排序输出 展开全文