竞码编程
月上小楼
12345
展开
-
搜索算法-DFS BFS总结
通过几天的刷题,对dfs和bfs算法有了更深一步的认识,下面来总结一下:一、DFS1.核心一条路走到黑+回溯2.分析针对蓝桥杯历年真题中的剪格子来说:(1)dfs方法的参数:变化的坐标x、y,变化的格子数,变化的数之和。(2)递归出口:当和等于数组和的一半时,将全局变量min更新,回溯。当和大于数组和的一半时,直接回溯。(3)向当前格子的三个方向“探测”:符合条件的标成已访问,避免进行下一次递归时,造成死循环。当前递归完成后,再将其标成未访问,避免影响回溯后其他路径。(4)递归完成原创 2020-08-06 12:00:08 · 313 阅读 · 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 · 232 阅读 · 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 · 202 阅读 · 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 · 129 阅读 · 0 评论 -
竞码编程——蓝桥杯模拟赛2
此赛有两道未解决,一道未看懂,还有一道未用Excel解决掉。大部分是暴力解法,今后再刷题掌握其他算法(全排列、dp......)回过头来继续完善此赛代码。。A:完美车牌package oj.hzjingma.com.simulation2;// 其实这道题可以用数学中的排列组合方法来做:要求六位数旋转180度后仍是原来数,,则取决于该数的前三位,前三位一定后后三位也就一定了。而前三位每一...原创 2020-03-17 06:43:35 · 332 阅读 · 0 评论