蓝桥杯
蒙面侠1024
这个作者很懒,什么都没留下…
展开
-
【蓝桥杯】历届试题 带分数
问题描述 100 可以表示为带分数的形式:100 = 3 + 69258 / 714。 还可以表示为:100 = 82 + 3546 / 197。 注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。 类似这样的带分数,100 有 11 种表示法。 输入格式 从标准输入读入一个正整数N (N<1000*1000) 输出格式 程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。 注意:不要求输出每个表示,只统计有多少表示法! 样例输入1 100 样例输出1 11 样例输入2原创 2021-06-07 10:12:13 · 154 阅读 · 0 评论 -
【蓝桥杯】历届试题 连号区间数
问题描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。 当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。 输入格式 第一行是一个正整数N (1 <= N <= 50000), 表示全排列的规模。 第二行是N个不同的数字Pi(1原创 2021-06-07 10:08:31 · 92 阅读 · 0 评论 -
【蓝桥杯】算法训练 最短路 JAVA
问题描述 给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。 输入格式 第一行两个整数n, m。 接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。 输出格式 共n-1行,第i行表示1号点到i+1号点的最短路。 样例输入 3 3 1 2 -1 2 3 -1 3 1 2 样例输出 -1 -2 数据规模与约定 对于10%的数据,n = 2,m = 2。 对于30%的数据,n <= 5,m <=原创 2021-06-06 18:02:32 · 145 阅读 · 0 评论 -
【蓝桥杯】历届试题 翻硬币 JAVA
问题描述 小明正在玩一个“翻硬币”的游戏。 桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。 比如,可能情形是:oo*oooo 如果同时翻转左边的两个硬币,则变为:oooo***oooo 现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢? 我们约定:把翻动相邻的两个硬币叫做一步操作,那么要求: 输入格式 两行等长的字符串,分别表示初始状态和要达到的目标状态。每行的长度<1000 输出格原创 2021-06-06 10:48:26 · 65 阅读 · 2 评论 -
【蓝桥杯】历届试题 错误票据 JAVA
问题描述 某涉密单位下发了某种票据,并要在年终全部收回。 每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。 因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。 你的任务是通过编程,找出断号的ID和重号的ID。 假设断号不可能发生在最大和最小号。 输入格式 要求程序首先输入一个整数N(N<100)表示后面数据行数。 接着读入N行数据。 每行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大于100000),请注意行原创 2021-06-06 10:44:52 · 77 阅读 · 0 评论 -
【蓝桥杯】算法提高 求1加到x的和(number) JAVA
资源限制 时间限制:1.0s 内存限制:400.0MB 问题描述 有一个数x,求从1加到x的值 输入格式 输入一行,一个数x。 输出格式 输出1行,从一加到x的值 样例输入 10 样例输出 55 数据规模和约定 1<x<10000 等差数列求和,用暴力也行 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in=new原创 2021-06-06 10:39:47 · 220 阅读 · 0 评论 -
【蓝桥杯】单词分析 JAVA
问题描述 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。 现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这个字母出现的次数。 输入格式 输入一行包含一个单词,单词只由小写英文字母组成。 输出格式 输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪个。如果有多个字母出现的次数相等,输出字典序最小的那个。 第二行包转载 2021-06-02 12:41:13 · 175 阅读 · 0 评论 -
【蓝桥杯】整除数列 JAVA
有一个序列,序列的第一个数是 n,后面的每个数是前一个数整除 2,请输出这个序列中值为正数的项。 输入格式 输入一行包含一个整数 n。 输出格式 输出一行,包含多个整数,相邻的整数之间用一个空格分隔,表示答案。 数据范围 1≤n≤pow(10,18) 输入样例: 20 输出样例: 20 10 5 2 1 10的18的方,Java的long可以表示 import java.util.Scanner; public class Main { public static void main(St原创 2021-05-20 21:02:54 · 249 阅读 · 0 评论 -
解码
小明有一串很长的英文字母,可能包含大写和小写。 在这串字母中,有很多连续的是重复的。 小明想了一个办法将这串字母表达得更短:将连续的几个相同字母写成字母 + 出现次数的形式。 例如,连续的 5 个 a,即 aaaaa,小明可以简写成 a5(也可能简写成 a4a、aa3a 等)。 对于这个例子:HHHellllloo,小明可以简写成 H3el5o2。 为了方便表达,小明不会将连续的超过 9 个相同的字符写成简写的形式。 现在给出简写后的字符串,请帮助小明还原成原来的串。 输入格式 输入一行包含一个字符串。 输原创 2021-05-20 20:53:13 · 108 阅读 · 0 评论 -
图论入门
图论入门 假设用一个 n × n 的数组 a 来描述一个有向图的邻接矩阵: (1)编写一个函数确定一个顶点的出度 (2)编写一个函数确定一个顶点的入度 (3)编写一个函数确定图中边的数目 输入格式 第一行:节点总数 n、指定节点 m。 下面n行:有向图的邻接矩阵 输出格式 第一行包括三个数据:节点编号 m、m 的出度、m 的入度(之间用一个空格隔开)。 第二行包括一个数据:图中边的总数。 输出时每行末尾的多余空格,不影响答案正确性 样例输入 5 3 0 4 2 2 3 2 0 1 5 10 2原创 2021-05-18 22:10:49 · 281 阅读 · 0 评论 -
【栈】JAVA有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 import java.util.*; public class 有效的括号 { public static void main(String[] args) { // TODO Auto-generated method stub //左括号入栈,遇见右边符合就出栈 String s="()(]{}".原创 2021-04-19 10:22:56 · 69 阅读 · 0 评论 -
【JAVA】合法括号
一、递归 //在上一个的基础上,加在左边,右边,包含,以Set存储 public class 合法括号_递归 { public static void main(String[] args) { System.out.println(brackets(3)); } static Set<String> brackets(int n){ Set<String> set=new HashSet<>(); if(n==1) { set.add("()"原创 2021-04-18 15:21:33 · 156 阅读 · 0 评论 -
【JAVA】子集生成
一、递归法 import java.util.HashSet; import java.util.Set; public class 子集生成_递归 { public static void main(String[] args) { // TODO Auto-generated method stub int[] a= {1,2,3}; Set<Set<Integer>> set=sub(a,a.length,a.length-1); System.out.p原创 2021-04-18 15:18:48 · 200 阅读 · 1 评论 -
【JAVA】数论简单模板
一、判断闰年 public class 判断闰年 { // 1、能被4整除,但不能被100整除;2、能被400整除; public static void main(String[] args) { System.out.println(is(2021)); } static boolean is(int year) { return year%400==0||(year%4==0&&year%100!=0); } } 二、筛素数 public class 筛素数 {原创 2021-04-18 15:16:28 · 225 阅读 · 2 评论 -
【JAVA】矩阵乘法
import java.util.*; public class 矩阵乘法 { public static void main(String[] args) { @SuppressWarnings("resource") Scanner in=new Scanner(System.in); int n=in.nextInt(); int s=in.nextInt(); int m=in.nextInt(); int[][] a=new int[n][s]; int[][] b原创 2021-04-18 15:11:55 · 74 阅读 · 0 评论 -
【DFS】迷宫问题
一、判断是否可达 public class DFS判断是否可达 { static char[][] map={{'S','.','*','.'},{'.','.','.','.'},{'*','*','*','T'}}; static int[][] vis=new int[1000][1000]; static int n=map.length; //行 static int m=map[0].length;//列 static int[][] dist= {{0,-1},{0,1},{-1原创 2021-04-18 15:10:59 · 92 阅读 · 2 评论 -
【BFS】迷宫问题
一、判断是否可达 队列问题 public class BFS判断是否可达 { static boolean arrive=false; static char[][] map={{'S','.','*','.'}, {'.','.','.','.'}, {'*','*','*','T'}}; static int[][] vis=new int[1000][1000]; static int n=map.length; //行 static int m=map[0]原创 2021-04-18 15:09:07 · 64 阅读 · 0 评论 -
【排序】JAVA选择排序
//找出未排序部分最小值的位置minj //将minj位置的元素和未排序部分的起始元素交换 public class 选择排序 { public static void main(String[] args) { int[] a= {5,6,4,2,1,3}; int n=a.length; int step=0,minj; for(int i=0;i<n-1;i++) { minj=i; for(int j=i;j<n;j++) { if(a[j]<原创 2021-04-18 15:05:17 · 45 阅读 · 0 评论 -
【排序】JAVA冒泡排序
public class 冒泡排序 { //从数据末尾开始依次比较相邻两个元素,如果大小相反则交换位置 public static void main(String[] args) { // TODO Auto-generated method stub int step=0; int[] a={5,4,3,2,1}; int n=5; boolean flag=true; for(int i=0;flag;i++) { flag=false; for(int j=n-原创 2021-04-18 15:04:28 · 77 阅读 · 0 评论 -
【DFS】JAVA全组合模板
public class 全组合 { public static void main(String[] args) { int[] a={3,2,7,6,7}; dfs(a, 0, new StringBuilder()); } public static void dfs(int[] strs, int k, StringBuilder str) { if(k>strs.length) { return;原创 2021-04-18 15:03:00 · 235 阅读 · 0 评论 -
【DFS】JAVA全排列模板
一、标记法 public class 全排列01 { public static void main(String[] args) { // TODO Auto-generated method stub int[] arr=new int[] {1,2,3,5}; StringBuffer sb=new StringBuffer(); dfs(arr,sb); } static void dfs(int[] a,StringBuffer sb) { if(sb.length()原创 2021-04-18 15:01:39 · 245 阅读 · 0 评论