随笔分类 - 深度优先搜索dfs
摘要:\(AcWing\) \(198\). 反素数 一、题目描述 对于任何正整数 \(x\),其约数的个数记作 \(g(x)\),例如 \(g(1)=1、g(6)=4\)。 如果某个正整数 \(x\) 满足:对于任意的小于 \(x\) 的正整数 \(i\),都有 \(g(x)>g(i)\),则称 \(x
阅读全文
摘要:## [$AcWing$ $1118$. 分成互质组](https://www.acwing.com/problem/content/1120/) ### 一、题目描述 给定 $n$ 个正整数,将它们分组,使得每组中 **任意两个数互质**。 **至少** 要分成多少个组? **输入格式** 第一行
阅读全文
摘要:## [$AcWing$ $1117$. 单词接龙](https://www.acwing.com/problem/content/description/1119/) ### 一、题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏。 现在我们已知一组单词,且给定一个开头的字母,要求出以这个
阅读全文
摘要:## [$AcWing$ $1116$ . 马走日 ](https://www.acwing.com/problem/content/1118/) ### 一、题目描述 马在中国象棋以日字形规则移动。 请编写一段程序,给定 $n∗m$ 大小的棋盘,以及马的初始位置 $(x,y)$,要求不能重复经过棋
阅读全文
摘要:\(AcWing\) \(1013\). 机器分配 一、题目描述 总公司拥有 \(M\) 台 相同 的高效设备,准备分给下属的 \(N\) 个分公司。 各分公司若获得这些设备,可以为国家提供一定的盈利。盈利与分配的设备数量有关。 问:如何分配这\(M\)台设备才能使国家得到的盈利最大? 求出最大盈利
阅读全文
摘要:##[$AcWing$ $187$. 导弹防御系统 ](https://www.acwing.com/problem/content/189/) ### 一、题目描述 为了对抗附近恶意国家的威胁,$R$ 国更新了他们的导弹防御系统。 一套防御系统的导弹拦截高度 **要么** 一直 **严格单调**
阅读全文
摘要:题目传送门 一、深度优先搜索 #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 (
阅读全文
摘要:##$AcWing$ $901$. 滑雪 一、题目描述 给定一个 $R$ 行 $C$ 列的矩阵,表示一个矩形网格滑雪场。 矩阵中第 $i$ 行第 $j$ 列的点表示滑雪场的第 $i$ 行第 $j$ 列区域的高度。 一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。 当
阅读全文
摘要:##$AcWing$ $844$. 走迷宫 一、题目描述 给定一个 $n×m$ 的二维整数数组,用来表示一个迷宫,数组中只包含 $0$ 或 $1$,其中 $0$ 表示可以走的路,$1$ 表示不可通过的墙壁。 最初,有一个人位于左上角 $(1,1)$ 处,已知该人每次可以向上、下、左、右任意一个方向移
阅读全文
摘要:##$AcWing$ $843$. $n$-皇后问题 一、题目描述 $n$−皇后问题是指将 $n$ 个皇后放在 $n×n$ 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。 现在给定整数 $n$,请你输出所有的满足条件的棋子摆法。 输入格式 共一行,包含
阅读全文
摘要:##$AcWing$ $842$. 排列数字 一、题目描述 给定一个整数 $n$,将数字 $1∼n$ 排成一排,将会有很多种排列方法。 现在,请你按照字典序将所有的排列方法输出。 输入格式 共一行,包含一个整数 $n$。 输出格式 按字典序输出所有排列方案,每个方案占一行。 数据范围 $1≤n≤7$
阅读全文
摘要:题目传送门 一、题目解析 我们先来总结一下题意: (1) 26个字母(a-z),最多6个 (2) 第1位可以是a-z中任何一个。 (3) 第2位只能是在第1位字符的后面字符。第3位只能是在第2位后面的字符,后面也是一样的。 (4) 这样编号后,输入一个字符串,问:它的编号是多少?如果没找到,就输出0
阅读全文
摘要:题目传送门 一、题意分析 题意:给你一个$n \times m$的迷宫$g$(\(x\),$y$范围是$0 \sim n - 1$和$0 \sim m - 1$),$#\(不能走,\).$可以走,$S$作为起点,现在将迷宫扩展成无穷大,扩展方法是:任意一个$(x, y)$位置的字符$c = g(x
阅读全文
摘要:题目传送门 一、题意分析 二、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个点$TLE$掉 完整代
阅读全文
摘要:## 图的连通性判断 #### 总结 - 常用的判连通办法有四种,分别是并查集、$dfs$、$bfs$、$floyd$ - 最常用的是$dfs$、并查集 - 前三种适合稀疏图,$floyd$适合稠密图 ### 一、并查集 ```cpp {.line-numbers} #include using n
阅读全文
摘要:题目传送门 一、解题思路 1、用拓扑排序干掉非环结点 2、用$dfs$或者$bfs$找出最小环的长度 二、拓扑排序+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
阅读全文

浙公网安备 33010602011771号