深度优先搜索
算法解题那些事
这个作者很懒,什么都没留下…
展开
-
算法设计与分析197页求解任务分配问题
#include <bits\stdc++.h> using namespace std; #define INF 9999 #define MAXN 21 //问题表示 int n=4; int c[MAXN][MAXN]={{0,0,0,0,0},{0,9,2,7,8},{0,6,4,3,7},{0,5,8,1,8},{0,7,6,9,4}}; //求解结果表示 int x[MAXN]; int cost=0; int bestx[MAXN]; int mincost=INF; bool原创 2022-04-13 09:03:08 · 312 阅读 · 0 评论 -
m图着色方案问题
给定一个具有n个节点,k条边的无向联通图,给定m中颜色,有多少种着色方案使每一条边的两个顶点的着色不同。(n,k,m都很小于8) 直接枚举每个顶点,然后判断一下是否满足条件,即是否和它的相邻边颜色相同,颜色相同就继续搜下一个节点,否则回溯。 #include <bits\stdc++.h> using namespace std; #define MAXN 20 int n,k,m; vector<int> h[MAXN]; int ans; int x[MAXN]; voi.原创 2022-04-13 08:37:55 · 217 阅读 · 0 评论 -
蓝桥杯国赛填空题目平方拆分
平方拆分 本题总分:5 分 【问题描述】 将 2019 拆分为若干个两两不同的完全平方数之和,一共有多少种不同的方 法? 注意交换顺序视为同一种方法,例如 13.13 + 25.25 + 35.35 = 2019 与 13 .13+ 35.35 +25.25 = 2019 视为同一种方法。 这是一道暴搜的题目,爆搜的时候注意一些题目中的限制条件才能做成更好的剪指,注意是两两不同,我们依次考虑每次填写那个数,然后依次向下搜索就可以了,当然可以设置个标记数组,提高效率。 #include <iostre原创 2022-04-06 22:14:57 · 476 阅读 · 0 评论 -
2017年蓝桥杯c++A组方格分割
标题:方格分割 6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。 如图:p1.png, p2.png, p3.png 就是可行的分割法。 试计算: 包括这3种分法在内,一共有多少种不同的分割方法。 注意:旋转对称的属于同一种分割法。 以开始做这道题目想的是用dfs对方格进行搜索,后来发现这样很难判断重复搜索的次数以及递归的出口,看了网上博客大佬们的解法才恍然大悟,原来可以直接对方格边缘的点进行搜索,由于每一次分割一定经过点(3,3),因此可以以这个边为起点进行搜索,同时标记对原创 2022-04-03 16:16:48 · 500 阅读 · 0 评论