深度优先搜索
算法解题那些事
这个作者很懒,什么都没留下…
展开
-
算法设计与分析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 · 256 阅读 · 0 评论 -
m图着色方案问题
给定一个具有n个节点,k条边的无向联通图,给定m中颜色,有多少种着色方案使每一条边的两个顶点的着色不同。(n,k,m都很小于8)直接枚举每个顶点,然后判断一下是否满足条件,即是否和它的相邻边颜色相同,颜色相同就继续搜下一个节点,否则回溯。#include <bits\stdc++.h>using namespace std;#define MAXN 20int n,k,m;vector<int> h[MAXN];int ans;int x[MAXN];voi.原创 2022-04-13 08:37:55 · 197 阅读 · 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 · 448 阅读 · 0 评论 -
2017年蓝桥杯c++A组方格分割
标题:方格分割6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。如图:p1.png, p2.png, p3.png 就是可行的分割法。试计算:包括这3种分法在内,一共有多少种不同的分割方法。注意:旋转对称的属于同一种分割法。以开始做这道题目想的是用dfs对方格进行搜索,后来发现这样很难判断重复搜索的次数以及递归的出口,看了网上博客大佬们的解法才恍然大悟,原来可以直接对方格边缘的点进行搜索,由于每一次分割一定经过点(3,3),因此可以以这个边为起点进行搜索,同时标记对原创 2022-04-03 16:16:48 · 474 阅读 · 0 评论