![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯
题解
向上的yyy
路漫漫其修远兮,吾将上下而求索
展开
-
矩阵全相等三角形——枚举
问题描述给定一个字母矩阵,定义一个LQ三角形为某行中连续的几个字母、某列中连续的几个字母和一条45度的斜线中连续的几个字母组成的等腰直角三角形的边缘部分,其中每条边上的字母数量相等且至少为2。例如,对于下面的字母矩阵中,所有的字母 L 组成一个LQ三角形,所有字母 Q 组成了一个 LQ 三角形,所有字母 C 也组成了一个 LQ 三角形。原创 2022-11-13 16:03:40 · 456 阅读 · 0 评论 -
java 小数位数控制
通过DecimalFormat类的format方法利用此类的format方法,可以发现结果为进行四舍五入后的结果 DecimalFormat df = new DecimalFormat("#.##"); System.out.println(df.format(12.655));//12.65 System.out.println(df.format(12.658));//12.66通过String类的format方法和System类的printf方法可以发现原创 2022-04-08 14:09:04 · 5061 阅读 · 2 评论 -
java的进制转化
十进制转化为任意进制:toString方法的第一个参数为十进制的int类型数,第二个参数为想要转化的 进制,返回值是一个字符串类型;任意进制转化为十进制通过Integer的方法parseInt方法的第一个参数为想要转化的任意进制,是一个字符串类型,第二个参数为他原来为几进制;返回值为int类型通过BigInteger的构造方法==构构方法 第一个参数为想要转化的任意进制,是一个字符串类型,第二个参数为他原来为几进制;返回值BigInteger类型 ==...原创 2022-04-07 18:13:19 · 358 阅读 · 0 评论 -
2020省模拟赛 三元组中心问题 java、c++
分析流的解法 AC不太懂他的原理,参考大佬的解法;作者:https://www.lanqiao.cn/users/1328693/import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 在此输入您的代码.....原创 2022-04-03 14:51:25 · 1469 阅读 · 0 评论 -
2020省模拟赛 音节判断 java
分析此题是两个状态相互转换,可以采用双标记思想:p和q;满足某一个状态后,将其标记为false,把另一个状态标记为true,然后去寻找另一个状态;以此类推最后cnt可能会大于四段,因为可能出现welcome这类单词,welco已经满足题意了,但是会有多余的两段,我们要输出no;import java.util.Scanner;public class Main { static boolean yuan(char c) { if (c == 'a' || c == .原创 2022-04-02 21:57:33 · 413 阅读 · 0 评论 -
2020省模拟赛 数位递增的数 java
通过一个check函数去判断所给值是否每一位递增import java.util.Scanner;public class Main { static boolean check(int a){ int[] temp=new int[10]; int cnt=0; while (a>0){ temp[cnt++]=a%10;//倒序存放在数组中 a=a/10; } .原创 2022-04-02 20:19:19 · 679 阅读 · 0 评论 -
无向图最大边数、最小结点数问题
结点数已知,求最多含有多少边,最少含有多少边?n*(n-1)/2=2020,解出n即是最多包含的边数;n个结点的无向图,最少边数是:n-1,即2019-1条边数已知,求最多含有多少个结点,最少含有多少?边数固定,结点数可以是n-1得到2020,也可以是n*(n-1)/2得到2020,则用第二个公式求最少结点数public class Main { public static void main(String[] args) { //枚举可以构造出2020条边的结点数原创 2022-04-02 19:38:47 · 3490 阅读 · 1 评论 -
2020省模拟赛 合法括号序列 java
import java.util.Scanner;public class Main { static int ans = 0; static void dfs(int left, int right, String s) { if (s.length() == 8) { ans++; return; } if (left < 4) dfs(left + 1..原创 2022-04-02 16:44:26 · 164 阅读 · 0 评论 -
2020省模拟赛 最长递增 java
分析回溯,每一轮去进行个判断,是否有新的最大值;同此题:https://blog.csdn.net/weixin_51995229/article/details/123876357?spm=1001.2014.3001.5501import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in);.原创 2022-04-01 20:05:50 · 533 阅读 · 0 评论 -
2020模拟赛 单词重排 java
分析全排列模板:https://blog.csdn.net/weixin_51995229/article/details/123215475要注意此题有重复字母A,会重复排列,例如排列两次这个单词:AAILNOQ ,因为有两个重复字母,所以我们最终的结果要除以2;import java.util.Scanner;public class Main { static char[] c = {'L', 'A', 'N', 'Q', 'I', 'A', 'O'}; static i原创 2022-03-31 16:32:56 · 390 阅读 · 0 评论 -
2021模拟赛 逆序对数 java
分析和这个题相似:https://blog.csdn.net/weixin_51995229/article/details/123847151?spm=1001.2014.3001.5501就是两层循环,i从1开始,依次与后面的每个数比较,让i一直必到最后;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scan.原创 2022-03-31 16:23:03 · 196 阅读 · 0 评论 -
2020省模拟赛 长草 java
分析和这个题差不多一模一样,可以参考思路:https://blog.csdn.net/weixin_51995229/article/details/123845035?spm=1001.2014.3001.5501import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ..原创 2022-03-31 16:11:55 · 340 阅读 · 0 评论 -
2021模拟赛 点数 java
一个无向图包含 2020 条边,如果图中没有自环和重边,请问最少包含多少个结点?分析假设n个顶点,第1个顶点可以和另外n-1个顶点各形成一条边,那么一个顶点可以形成n-1条边;则n个顶点一共可形成n * (n-1)条边,由于该图是无向图,那么可以的得到的边数需要除以2;public class Main { public static void main(String[] args) { //枚举可以构造出2020条边的结点数 for (int i = 1; ; i+原创 2022-03-31 14:17:15 · 446 阅读 · 0 评论 -
2021模拟赛 IP地址 java
用二进制表示时候,我们要使每个数值要为共同长度的二进制位数,所以我们直接求最大的数需要几位二进制数,最后乘4(一共4位数);import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x = 192; int cnt = 0;//最大的数192,用二进.原创 2022-03-31 13:51:41 · 132 阅读 · 0 评论 -
2021模拟赛 图像模糊 java
分析需要注意被除数为像素的个数,我们通过一个cnt去记录满足在范围内的像素的个数,作为被除数;和扫雷这个题差不多,都是对矩阵进行操作;https://blog.csdn.net/weixin_51995229/article/details/123846142?spm=1001.2014.3001.5501import java.util.Scanner;public class Main { public static void main(String[] args) { ..原创 2022-03-30 21:31:14 · 429 阅读 · 0 评论 -
2021模拟赛 合法日期 java
解法1用java的类库:SimpleDateFormat,利用构造器传入想要判断的日期格式,创建一个date对象;然后通过try、catch;要设置这个date.setLenient(false),表示严格检查日期,通过 date.parse(s),来判断这个字符串s是否合法;对输入的数据需要处理,其是个位数时,我们要加一个前导0;import java.text.SimpleDateFormat;import java.util.Scanner;public class Main {..原创 2022-03-30 20:16:47 · 198 阅读 · 0 评论 -
2021模拟赛 序列个数 java 暴力
思想要能想到…public class Main { public static void main(String[] args) { int ans = 0; for (int i = 1; i <= 10; i++) { for (int j = 1; j <= 10; j++) { for (int k = 1; k <= 10; k++) { .原创 2022-03-30 19:53:10 · 198 阅读 · 0 评论 -
2021模拟赛 距离和 java
此题就是对每两个字符的差值进行累加,但是累加时候,需要加绝对值,因为不一定前面和后面那个字符大;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.next(); char[] c = s.toCharArray(); ..原创 2022-03-30 15:17:00 · 333 阅读 · 0 评论 -
2020模拟赛 约数个数 java
它本身也属于他的约数;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int ans = 0; for (int i = 1; i <= 1200000; i++) { if (1200000 % i == 0) .原创 2022-03-30 15:00:11 · 104 阅读 · 0 评论 -
2021模拟赛 扫雷 java
分析需要注意要判断周围的八个方向,而且需要用一个ans数组保存当前点的答案,不能直接对原来进行覆盖,不然计算下面的会识别不出来前面的;为数组多加一层0,可以不需要对边界值是否越界的考虑;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[][] ma..原创 2022-03-30 14:48:33 · 165 阅读 · 0 评论 -
2021模拟赛 灌溉 java
分析此题给出水管的位置,表示其刚开始就已经被灌溉,每一分钟,每个被灌溉的格子回让周围上下左右四个方向被灌溉;我们可以开大一点的数组,使其有效范围内在1~n、1–m;这样就不用考虑边界会不会越界的问题,最后我们只遍历有效范围内即可我们需要一个vis数组去标记,每过一分钟的新增格子情况,不能在map的基础上直接更改,不然会前面新赋值的格子,被后面当成早已灌溉的;import java.util.Scanner;public class Main { public static vo..原创 2022-03-30 14:18:46 · 444 阅读 · 0 评论 -
2021模拟赛 删除字符 java
分析通过分析可以发现,通过删除字符,让字符串中的字符,排在前面的字母比较小;import java.util.LinkedList;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.next(); int n = sc.原创 2022-03-30 13:35:26 · 141 阅读 · 0 评论 -
2021模拟赛 跳跃 java_dfs_动态规划
分析我们可以发现,从一个点开始,一共有9个点可以到达,我们通过dfs,用一个for循环搜索这9个可达点;在搜索时,对于多个方向走的问题,我们用一个偏移量dx_dy,一维为x,二维为y;我们要注意判断对当前点x,y加上偏移量后变成的xx,yy要判断其是否在有效范围内,不能越界;dfs出口就是,搜索到了终点,我们用一个ans来记录到达终点的最大权值和;通过取当前的ans值和该条路径权值和的最大值;import java.util.Scanner;public class Main { ..原创 2022-03-29 20:54:03 · 676 阅读 · 0 评论 -
积木大赛 java 贪心
后一个积木高度减去前面一个积木的高度的累加就是结果,默认把第一个高度的值为初始操作步数,那如果第二个比他高,就再加上高出来的,如果小于等于就不用管,往后这样累加下去import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.next..原创 2022-03-29 19:09:23 · 497 阅读 · 0 评论 -
2020国赛 含2天数 java暴力
需要注意check的位置,统一去判断;import java.util.Scanner;public class Main { //判断输入的数是否含2 static boolean check(int a) { while (a > 0) { if (a % 10 == 2) return true; a /= 10; } return false;.原创 2022-03-29 16:12:20 · 187 阅读 · 0 评论 -
2013省赛 连号区间数 java
分析此题就是判断输入的四个数组成的序列是否是一个递增子序列 且连续,那么就是一个公差为1的数列;所以判断一个序列是否是连号区间数,这个序列的长度就是:最大值max减去最小值min,通过判断是否等于序列的长度j-i,即可判断序列问题就是两层循环,往后判断,然后回溯回来,从下一个数开始,继续向后判断 ;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanne..原创 2022-03-28 16:52:20 · 340 阅读 · 0 评论 -
2013省赛 买不到的数目 java_数论_dp
分析1.数论如果输入的两个数不互质,比如一个2、一个4,那么最大不能达到的数字为无穷,即无解,题目保证此题有解;那么输入的两个数就是互为质数;对互质的两个数:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextI.原创 2022-03-27 17:07:30 · 443 阅读 · 0 评论 -
2019省赛 等差数列 java
分析如果让长度最小,那么将序列排好序,让最小的数当数列的首元素,最大的数为数列的最后一个元素参考:https://blog.csdn.net/Archerrrrr/article/details/115551566通过通项公式变形求得n即可,要注意除数可能为0,即该数列为常数列的情况import java.util.Arrays;import java.util.Scanner;public class Main { static int gcd(int a, int b) { ..原创 2022-03-27 15:54:27 · 190 阅读 · 0 评论 -
2016年省赛 四平方和 java 暴力
分析暴力我们要找到每个数的上限值,就是对给出的n进行开根号,求得每个数的上限为2236.0679…,故我们枚举到2237即可;不用四层循环,可以通过将d的平方dd表示出来,判断其开方是否为整数即可;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 求得a,b,c,d每个数的上限..原创 2022-03-27 14:41:38 · 380 阅读 · 2 评论 -
2021模拟赛 受伤的皇后 dfs_java
分析和此题同类型:https://blog.csdn.net/weixin_51995229/article/details/1234028842. 与上题不同的时 ,加了个宽松的条件,两个皇后在同一条 45 度角的斜线上,这两个皇后之间行号的差值至少为 3 ,就是说,斜线上可以放多个,只要满足差值的条件;3. 在八皇后问题,dfs搜的是行,递归出口就是搜完了最后一行;在dfs中进入到第u行时 ,我们要去搜索当前行的每一列,如果某一列可以放皇后的话,我们去把它标记为1,然后dfs向下搜索,还..原创 2022-03-26 16:51:43 · 506 阅读 · 0 评论 -
2021省赛 最少砝码 java
分析找规律+贪心如果称重1,需要一个砝码其重量为1;我们要加的砝码的重量,经过组合要能够表示较大的数,比如第一个砝码重量为1,该表示重量为2的,那么下一个加2还是3?2.1 如果加2,则能表示:1+2,2-1,1,2,最多只能表示到1,2,3;2.2 如果加3,能表示:1+3,3-1,1,3,最大可以表示到4,且1到4都可以表示此时砝码的个数为2个(重量为1和重量为3);可以表示的范围为[1,4];我们又该找能表示重量为5的,我们利用贪心的思想(要加的砝码的重量,经过组合要能够表示较大的..原创 2022-03-26 16:11:09 · 684 阅读 · 0 评论 -
2011国赛 最小公倍数 java_lcm_数论
分析此题就是求1到n这n个数中的最小公倍数,我们可以从第一个数开始,不断向后面求;用a去记录前i个数的最小公倍数;我们可以通过a、t的乘积除以a、b的做大公约数,来求得他们的最小公倍数;import java.math.BigInteger;import java.util.Scanner;//给出n个数,找出这n个数的最大值,最小值,和。public class Main { public static void main(String[] args) { // TODO A..原创 2022-03-26 15:21:08 · 198 阅读 · 0 评论 -
2021填空 时间显示 java
分析法1用java的库函数,但是样例测试并不对,提交就对;分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。3.通过此方法控制输出import java.sql.Date;import java.text.SimpleDateFormat;import java.util.Scanner;public class Main { public static v..原创 2022-03-25 14:07:33 · 353 阅读 · 0 评论 -
子串分值和、字串分值 java
子串分值时间超限60分暴力代码需要一个额外容器去记录已经删除的字母,因为如果将set容器的多次出现的字母删除了,下次在遇到它,会被以为没添加过;package lanqiao;import java.util.HashSet;import java.util.Scanner;import java.util.Set;public class Main { public static void main(String[] args) { Scanner sc = new Scann原创 2022-03-23 21:23:03 · 847 阅读 · 1 评论 -
2012填空——棋盘放麦子 java
分析大数处理参考:https://blog.csdn.net/GD_ONE/article/details/103951501import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); BigInteger ans = new BigInteg.原创 2022-03-22 20:06:13 · 453 阅读 · 0 评论 -
2012填空 ——猜生日 Java
分析题目已经说6月,故不用考虑闰年了;被整除与整除:A/B==整数,则A被B整除,或B整除A;此题是8位数,分别与2012、6、12求余得零;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); for(int year=1900;year<=2012;year++) { fo.原创 2022-03-22 19:50:00 · 316 阅读 · 0 评论 -
2018省赛填空_星期一_java
分析和此题有点相似,遍历每一天,要注意闰年;https://blog.csdn.net/weixin_51995229/article/details/123600415日期类介绍:,多用于求某一天为星期几,需要注意DAY_OF_WEEK=1位周日;设置日期时,set中的month参数,一月为0;参考:https://blog.csdn.net/GD_ONE/article/details/104061292import java.util.Calendar;import java.util.原创 2022-03-22 17:54:45 · 110 阅读 · 0 评论 -
第十三届蓝桥杯省赛模拟赛
1287填空题问题描述 以下是一个 25 行 25 列的字母矩阵,全部由字母 A 和 B 组成。 AAAAAAABABBAABABABAAAAAAA ABBBBBABBAABBBBBABABBBBBA ABAAABABBBABAABBBBABAAABA ABAAABABBBBBAABAABABAAABA ABAAABABBABABBABABABAAABA ABBBBBABBBABAABBBBABBBBBA AAAAAAABABABABABAB原创 2022-03-21 21:23:49 · 2234 阅读 · 14 评论 -
蓝桥杯 _专题二_ 全排列枚举
参考https://blog.csdn.net/m0_57487901/article/details/1223401891.生日蜡烛此题是找从几岁合适import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int ans=0; for(int i=1;i<=100;i++) {原创 2022-03-21 17:32:22 · 311 阅读 · 0 评论 -
2020省赛 填空 _ 寻找 2020 _java
分析通过将样例复制到记事本,可以看到一共300行字符串,故我们可以用一个字符串数组,去遍历每一行每一列以及斜线;我们需要判断所在行或列或斜线上要满足四个元素以上,不然会造成数组越界;斜线上的规律就是:当前点为(i,j),则同一斜线下一个点为(i+1,j+1);import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner..原创 2022-03-21 08:45:43 · 379 阅读 · 0 评论