随笔分类 - 算法——dfs
摘要:题目 分析 枚举所有的答案,然后再判断,复杂度为 ${10}^5$。 对于每个可能的答案,如果不符合某个条件,则返回false。 我也不知道题干是按 “充分必要条件” 处理还是 “必要条件处理”,反正没用完所有条件就出结果了。 两年前第一次看到这个,就想用程序解决,可是当时C语言都才开始学。 转眼就
阅读全文
摘要:题意 $S(1) = "COFFEE", S(2)="CHICKEN"$,$S(n) = S(n-2)+S(n-1)$,请输出 $S(n)$ 中从第 $k$ 个字符开始的10个字符(若不足10个输出到末尾即可),$1 \leq n \leq 500, 1 \leq k \leq min({|S(n)
阅读全文
摘要:题目 链接 题意:给出一个长度为 $n$ 的数列 $A_i$,问是否能将这个数列分解为两个长度为n/2的子序列,满足: 两个子序列不互相重叠(是值不能有共同元素,但位置可以交错)。 两个子序列中的数要完全一样,{1, 2} = {1, 2},{1, 2} ≠ {2, 1}。 分析 用两个队列,正反扫
阅读全文
摘要:考虑将正整数n拆分成几个不同的平方数之和,比如30=1^2 + 2^2 + 5^2=1^2 + 2^2 + 3^2 + 4^2,而8不存在这样的拆分。 只有31个数无法分解:2,3,6,7,8,11,12,15,18,19,...,108,112,128,在10^18内只有31个,更大的没有验证。
阅读全文
摘要:题目 链接 题意:一个$1$到$n$的序列被去掉空格,需要将其还原。例如$4111109876532$可还原成$4 \ 1 \ 11 \ 10 \ 9 \ 8 \ 7 \ 6 \ 5 \ 3 \ 2$。字符串的长度在$1$到$100$之间。 解决方法 由于是1到n的序列,根据长度可以求出n。 由于长
阅读全文
摘要:题目 链接 在一个$n \times m$方格地图上,某些方格上放置着炸弹。手动引爆一个炸弹以后,炸弹会把炸弹所在的行和列上的所有炸弹引爆,被引爆的炸弹又能引爆其他炸弹,这样连锁下去。 现在为了引爆地图上的所有炸弹,需要手动引爆其中一些炸弹,为了把危险程度降到最低,请算出最少手动引爆多少个炸弹可以把
阅读全文
摘要:题目 构造一个由串联和并联构成的纯电阻电路,使得该电路的等效电阻为p/q,其中(p,q) = 1。要求输出n,表示节点数,m表示电阻个数,m行每行ui,vi,wi,表示ui和vi之间要连上一个电阻为wi,然后输出s,t表示接入节点和接出节点。 原题链接:https://www.nowcoder.co
阅读全文
摘要:题目 有一个含有N个未知数的方程如下: x1^x2^...^xn= V,给定N,V,再给定正整数a1,a2,...an满足1≤ai≤9且∏Ni=1(ai+1) ≤ 32768,请输出所有满足0≤xi≤ai的解。 思路 枚举每个xi的取值,显然,写成N个循环肯定可以,但不如递归简洁。 复杂度 递归的写
阅读全文
摘要:题目 数轴上有M个点a1、a2、...am,另有一个数列p1、p2、...pn,(1 ≤ pii ≤ M)。 给定d1、d2、...dn,对所有的 i (1 ≤ i ≤ n),已知 |api+1 - api| = di,求M得最少可能值。(1 ≤ n ≤ 25 ,1 ≤ ai ≤ 105) 原题链接
阅读全文
摘要:区别与联系 区别 DFS多用于连通性问题因为其运行思想与人脑的思维很相似,故解决连通性问题更自然,采用递归,编写简便(但我个人不这样觉得。。。) DFS的常数时间开销会较少。所以对于一些能用DFS就能轻松解决的,为何要用BFS? 一般来说,能用DFS解决的问题,都能用BFS。 BFS多用于解决最短路
阅读全文
摘要:一、题目(CF 598D) 输入一个n x m的字符矩阵,求从某个空点出发,能碰到多少面墙壁,总共询问k次。(3 ≤m,n ≤1000,1 ≤ k ≤ min(nm,100 000)) 二、解题思路 用DFS找连通分量:从每个“.”格子出发,递归遍历与之相邻的“*”格子,且写上相同的联通分量(即代码
阅读全文
摘要:一、题目 输入一个m行n列的字符矩阵,统计字符“@”组成多少个八连块。如果两个字符所在的格子相邻(横、竖、或者对角线方向),就说它们属于同一个八连块。 二、解题思路 和前面的二叉树遍历类似,图也有DFS和BFS遍历。由于DFS更容易编写,一般用DFS找联通块:从每个“@”格子出发,递归遍历与之相邻的
阅读全文
摘要:棋盘问题——深度优先搜索 题目描述: 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 详情请看poj1321: https://vjudge.ne
阅读全文
摘要:当然由于是按行搜索,可以用一维数组存储状态,可参见https://paste.ubuntu.com/p/qHFDHxjc4v/
阅读全文