回溯法
MasterSPP
这个作者很懒,什么都没留下…
展开
-
素数环圈——回溯法
任务描述本关任务:把从 1 到 n 这 n 个数摆成一个环,要求相邻的两个数的和是一个素数。测试输入:20预期输出:围成的圈是:1 2 3 4 7 6 5 8 9 10 13 16 15 14 17 20 11 12 19 18#include<stdio.h>#include<math.h>int a[40] = { 0,1 }, n, isPrime[40], vis[40] = { 0,1 }, flag = 0;void dfs(int x, in原创 2021-06-11 17:09:33 · 2680 阅读 · 0 评论 -
n位逐位整除数——回溯法
任务描述本关任务:掌握回溯法算法思想,并能利用回溯法算法思想解决n位逐位整除数问题。n位逐位整除数(简称整除数):从其高位开始,高1位能被整数1整除(显然),高2位能被整数2整除,…,整个n位能被整数n整除。给定整数n,求所有的n位整除数的个数。例如,整数102450就是一个6位整除数。测试输入:6预期输出:1200参考讲解,salute!#include <iostream>#include <algorithm>#include <cstdio原创 2021-06-05 09:31:31 · 2658 阅读 · 0 评论 -
TSP旅行商问题——回溯法
任务描述输入格式第一行输入n,代表有n个城市。接下来n行每行输入n个数,第i行j列的值代表i市到j市的距离,0代表城市之间不通注意:起点和终点都为1n<7,城市之间的距离都不超过100输出格式第一行输出最少的旅行费用第二行输入旅行路径(保证只有一条最短旅行路径)Sample Input40 30 6 430 0 5 106 5 0 204 10 20 0Sample Output251 3 2 4 1#include<stdio.h>#de原创 2021-05-23 14:44:08 · 1137 阅读 · 0 评论 -
N皇后问题——回溯法-递归与非递归
任务描述在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。输入格式共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。输出格式共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。Sample Input1850Sample Output19210#include<stdio.h>原创 2021-05-22 17:41:45 · 1904 阅读 · 0 评论 -
子集和问题——回溯法
任务描述设集合S={x1,x2,…,xn}是一个正整数集合,c是一个正整数,子集和问题判定是否存在S的一个子集S1,使S1中的元素之和为c。试设计一个解子集和问题的回溯法输入格式输入数据第1行有2个正整数n和c,n表示S的大小,c是子集和的目标值接下来的1行中,有n个正整数,表示集合S中的元素n<10,c<100输出格式输出所有满足条件的集合,当问题无解时,输出“No Solution!”。注意:末尾不输出多余空格按照输入顺序输出,比如第一个满足条件的子集合是[2 2 6],那原创 2021-05-22 10:50:35 · 4674 阅读 · 2 评论 -
排列——回溯法
任务描述1.设计算法从前m个大写字母(m≤26)种取出n个字母的所有排列(组合),并编程实现输入格式输入M N1<=M=26, N<=M输出格式按字典序输出排列注意:行末不输出多余空格Sample Input4 2Sample OutputA BA CA DB AB CB DC AC BC DD AD BD C#include<stdio.h>#include<string.h>int n, m, pp = 1;原创 2021-05-22 08:50:22 · 283 阅读 · 0 评论