随笔分类 - 深度优先搜索dfs
摘要:## [ . 分成互质组](https://www.acwing.com/problem/content/1120/) ### 一、题目描述 给定 个正整数,将它们分组,使得每组中 **任意两个数互质**。 **至少** 要分成多少个组? **输入格式** 第一行
阅读全文
摘要:## [ . 单词接龙](https://www.acwing.com/problem/content/description/1119/) ### 一、题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏。 现在我们已知一组单词,且给定一个开头的字母,要求出以这个
阅读全文
摘要:## [ . 马走日 ](https://www.acwing.com/problem/content/1118/) ### 一、题目描述 马在中国象棋以日字形规则移动。 请编写一段程序,给定 大小的棋盘,以及马的初始位置 ,要求不能重复经过棋
阅读全文
摘要: . 机器分配 一、题目描述 总公司拥有 台 相同 的高效设备,准备分给下属的 个分公司。 各分公司若获得这些设备,可以为国家提供一定的盈利。盈利与分配的设备数量有关。 问:如何分配这台设备才能使国家得到的盈利最大? 求出最大盈利
阅读全文
摘要:##[ . 导弹防御系统 ](https://www.acwing.com/problem/content/189/) ### 一、题目描述 为了对抗附近恶意国家的威胁, 国更新了他们的导弹防御系统。 一套防御系统的导弹拦截高度 **要么** 一直 **严格单调**
阅读全文
摘要:题目传送门 一、深度优先搜索 #include <bits/stdc++.h> using namespace std; int n; //毫不意外,只通过了5个测试点,TLE了15个点~ int dfs(int x) { //1就没法继续分了,同时,由于题目说:原数列不做任何修改就直接统计为一种合
阅读全文
摘要:题目传送门 一、递推+高精度 #include <bits/stdc++.h> using namespace std; const int N = 5010; /** * 功能:高精度加法模板 * @param A * @param B * @return */ vector<int> add(v
阅读全文
摘要:题目传送门 一、无脑大循环 #include<bits/stdc++.h> using namespace std; vector<string> v1; int main() { int a, b, c, d, e, f, g, h, i, j, k, l = 0; cin >> k; for (
阅读全文
摘要:## . 滑雪 一、题目描述 给定一个 行 列的矩阵,表示一个矩形网格滑雪场。 矩阵中第 行第 列的点表示滑雪场的第 行第 列区域的高度。 一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。 当
阅读全文
摘要:## . 走迷宫 一、题目描述 给定一个 的二维整数数组,用来表示一个迷宫,数组中只包含 或 ,其中 表示可以走的路, 表示不可通过的墙壁。 最初,有一个人位于左上角 处,已知该人每次可以向上、下、左、右任意一个方向移
阅读全文
摘要:## . -皇后问题 一、题目描述 −皇后问题是指将 个皇后放在 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 ,请你输出所有的满足条件的棋子摆法。 输入格式 共一行,包含
阅读全文
摘要:## . 排列数字 一、题目描述 给定一个整数 ,将数字 排成一排,将会有很多种排列方法。 现在,请你按照字典序将所有的排列方法输出。 输入格式 共一行,包含一个整数 。 输出格式 按字典序输出所有排列方案,每个方案占一行。 数据范围
阅读全文
摘要:题目传送门 一、题目解析 我们先来总结一下题意: (1) 26个字母(a-z),最多6个 (2) 第1位可以是a-z中任何一个。 (3) 第2位只能是在第1位字符的后面字符。第3位只能是在第2位后面的字符,后面也是一样的。 (4) 这样编号后,输入一个字符串,问:它的编号是多少?如果没找到,就输出0
阅读全文
摘要:题目传送门 一、题意分析 二、bfs解法 1、链式前向星 #include <bits/stdc++.h> using namespace std; const int N = 10010; //10000条边 queue<int> q; bool st[N]; //走过了没 int n; //n个
阅读全文
摘要:题目传送门 一、大力出奇迹,爆搜过样例 开始想的是先把所有字符串按照字典序升序(由小到大)排一下,然后从前向后以每一个单词为起点爆搜一下, 第一个得到的答案就是字典序最小的答案,这个做法是对的,但是会被卡掉,因为复杂度比较高。 关键词:字符串数组+排序+爆搜 结果:80分,2个点掉 完整代
阅读全文
摘要:## 图的连通性判断 #### 总结 - 常用的判连通办法有四种,分别是并查集、、、 - 最常用的是、并查集 - 前三种适合稀疏图,适合稠密图 ### 一、并查集 ```cpp {.line-numbers} #include using n
阅读全文
摘要:题目传送门 一、解题思路 1、用拓扑排序干掉非环结点 2、用或者找出最小环的长度 二、拓扑排序+dfs 解法 1、vector邻接表实现 #include <bits/stdc++.h> using namespace std; /** 思路:其实就是求最小环。每个点的出度都是1
阅读全文
摘要:题目传送门 一、拓扑排序完整代码(bfs) #include <bits/stdc++.h> using namespace std; const int N = 10010; int n; //必须完成的杂务的数目 int x; //工作序号 int y; //一些必须完成的准备工作 int an
阅读全文