
竞码编程
wuhhhhhhha
12345
展开
-
搜索算法-DFS BFS总结
通过几天的刷题,对dfs和bfs算法有了更深一步的认识,下面来总结一下: 一、DFS 1.核心 一条路走到黑+回溯 2.分析 针对蓝桥杯历年真题中的剪格子来说: (1)dfs方法的参数:变化的坐标x、y,变化的格子数,变化的数之和。 (2)递归出口: 当和等于数组和的一半时,将全局变量min更新,回溯。 当和大于数组和的一半时,直接回溯。 (3)向当前格子的三个方向“探测”: 符合条件的标成已访问,避免进行下一次递归时,造成死循环。 当前递归完成后,再将其标成未访问,避免影响回溯后其他路径。 (4)递归完成原创 2020-08-06 12:00:08 · 376 阅读 · 0 评论 -
一维前缀和、二维前缀和、一维差分、二维差分
一、一维前缀和 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); int n=in.nextInt(); int m=in.nextInt(); int[] prefix=new int[n+1]; int[] arr=new int[n+1]; for (int i = 1; i <原创 2020-08-04 18:35:20 · 283 阅读 · 0 评论 -
全排列+check检验
通过这几天的刷题,发现蓝桥惯出的一种题型----全排列+check()。 也就是在求出所有全排列的结果后,并检查每种结果是否满足题目的条件得出最终答案。 一、核心 递归式全排列或字典序式全排列 二、代码实现 1.递归式(未按字典序输出) import java.util.Scanner; public class Permutations { public static void main(String[] args) { Scanner in=new Scanner(System.in); i原创 2020-08-04 18:11:47 · 247 阅读 · 0 评论 -
迷宫问题
方法有dfs、bfs,在这里介绍bfs,因为这类问题可能会涉及到求解最短路径的情况。 一、分析 针对蓝桥杯的某一年真题来分析(竞码上的7053题):迷宫 大体上,两个核心: 1.通过队列找出最短的路径,并在每个地方标注U、D、L、R四个方向。 2.通过ArrayList回溯,将最终结果输出。 二、代码实现 import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Scan原创 2020-08-04 18:22:41 · 162 阅读 · 0 评论 -
竞码编程——蓝桥杯模拟赛2
此赛有两道未解决,一道未看懂,还有一道未用Excel解决掉。大部分是暴力解法,今后再刷题掌握其他算法(全排列、dp......)回过头来继续完善此赛代码。。 A:完美车牌 package oj.hzjingma.com.simulation2; // 其实这道题可以用数学中的排列组合方法来做:要求六位数旋转180度后仍是原来数,,则取决于该数的前三位,前三位一定后后三位也就一定了。而前三位每一...原创 2020-03-17 06:43:35 · 392 阅读 · 0 评论