蓝桥杯

蓝桥杯——错误票据

馋奶兔 提交于 2019-12-13 23:44:51
蓝桥杯——错误票据 问题描述 某涉密单位下发了某种票据,并要在年终全部收回。 每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。 因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。 你的任务是通过编程,找出断号的ID和重号的ID。 假设断号不可能发生在最大和最小号。 输入格式 要求程序首先输入一个整数N(N<100)表示后面数据行数。 接着读入N行数据。 每行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大于100000),请注意行内和行末可能有多余的空格,你的程序需要能处理这些空格。 每个整数代表一个ID号。 输出格式 要求程序输出1行,含两个整数m n,用空格分隔。 其中,m表示断号ID,n表示重号ID 输入案例1 2 5 6 8 11 9 10 12 9 输出案例1 7 9 输入案例2 6 164 178 108 109 180 155 141 159 104 182 179 118 137 184 115 124 125 129 168 196 172 189 127 107 112 192 103 131 133 169 158 128 102 110 148 139 157 140 195 197 185 152 135 106 123 173 122 136 174 191

第七届蓝桥杯javaB组真题解析-凑算式(第三题)

别来无恙 提交于 2019-12-11 07:43:05
/* 凑算式 B DEF A + --- + ------- = 10 C GHI (如果显示有问题,可以参见【图1.jpg】) 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。 比如: 6+8/3+952/714 就是一种解法, 5+3/1+972/486 是另一种解法。 这个算式一共有多少种解法? 注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。 */ #include <iostream> using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { int count=0; for(int a=1;a<=9;a++) { for(int b=1;b<=9;b++) { if(a==b) continue; for(int c=1;c<=9;c++) { if(a==c || b==c) continue; for(int d=1;d<=9;d++) { if(a==d || b==d || c==d) continue; for(int e=1;e<=9;e++) { if(a==e || b==e

蓝桥杯练习题(算法训练)

那年仲夏 提交于 2019-12-10 21:37:04
问题描述   对于给定整数数组a[],寻找其中最大值,并返回下标。 输入格式   整数数组a[],数组元素个数小于1等于100。输出数据分作两行:第一行只有一个数,表示数组元素个数;第二行为数组的各个元素。 输出格式   输出最大值,及其下标 样例输入 3 3 2 1 样例输出 3 0 import java.util.Scanner; public class Demo4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; for(int i = 0; i < arr.length; i++){ arr[i] = sc.nextInt(); } System.out.print(max(arr) + " "); System.out.print(max_sub(arr)); } public static int max(int[] a){ int max = a[0]; for (int value : a) { if (max < value) { max = value; } } return max; } public static int max_sub(int[] a){

蓝桥杯历届试题 网络寻路

我怕爱的太早我们不能终老 提交于 2019-12-10 09:16:19
如果可以,可以陪你千年不老,千年只想眷顾你倾城一笑;如果愿意,愿意陪你永世不离,永世只愿留恋你青丝白衣。 #include <iostream> #include <cstdio> #include <algorithm> #include <string> #include <cstring> #include <cstdlib> #include <cmath> #include <stack> #include <queue> #include <set> #include <map> #include <vector> #include <ctime> #include <cctype> #include <bitset> #include <utility> #include <sstream> #include <complex> #include <iomanip> #define inf 0x3f3f3f3f typedef long long ll; using namespace std; vector<int>G[10010];//邻接表 int jg,m,n,sum; void dfs(int u,int f,int ct)//u是源点,f是父结点,ct是经过的点的个数 { int sn; if(ct==2) { sum+=G[u].size()-1;

蓝桥杯-区间k大数查询java语言

邮差的信 提交于 2019-12-10 00:22:32
蓝桥杯-区间k大数查询java语言 开局一段话: 这是蓝桥练习系统算法练习中的第一题,难度并不大,但是由于一开始我想太多了,导致我第一版本后面的数据超时了, 后来又才改成了这个版本。 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入格式 第一行包含一个数n,表示序列长度。 第二行包含n个正整数,表示给定的序列。 第三个包含一个正整数m,表示询问个数。 接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。 输出格式 总共输出m行,每行一个数,表示询问的答案。 样例输入 5 1 2 3 4 5 2 1 5 2 2 3 2 样例输出 4 2 数据规模与约定 对于30%的数据,n,m<=100; 对于100%的数据,n,m<=1000; 保证k<=(r-l+1),序列中的数<=106。 题目说要从大往小的排,但是sort函数是从小往大的排,然后我居然实现了Comparator比较器接口,还增加了泛型,最后后面的数据跑不出来超时,但是也不是没有收获。至少练习了一下实现接口,增加泛型,后面我又发现了一种比较简单的使sort函数能够从大到小排序的的方法:调用reverseOrder() 方法,用于获取一个比较有否就实现Comparable接口的对象的集合的自然顺序相反,简单的粘一下代码

蓝桥杯历届试题 九宫幻方

蹲街弑〆低调 提交于 2019-12-09 22:23:15
如果可以,可以陪你千年不老,千年只想眷顾你倾城一笑;如果愿意,愿意陪你永世不离,永世只愿留恋你青丝白衣。 #include <iostream> #include <cstdio> #include <algorithm> #include <string> #include <cstring> #include <cstdlib> #include <cmath> #include <stack> #include <queue> #include <set> #include <map> #include <vector> #include <ctime> #include <cctype> #include <bitset> #include <utility> #include <sstream> #include <complex> #include <iomanip> #define inf 0x3f3f3f3f typedef long long ll; using namespace std; int s[10],jg[10],vis[10],ct; //一维数组存储3*3矩阵 bool jc() { int sum=0; for(int i=0; i<3; i++) { sum=0; for(int j=0; j<3; j++)//第i行的和 sum+=s[i*3

垒骰子---蓝桥杯---矩阵快速幂---C++

半城伤御伤魂 提交于 2019-12-09 14:18:14
题目描述: 赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。 经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥! 我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。 假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。 atm想计算一下有多少种不同的可能的垒骰子方式。 两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。 由于方案数可能过多,请输出模 10^9 + 7 的结果。 不要小看了 atm 的骰子数量哦~ 「输入格式」 第一行两个整数 n m n表示骰子数目 接下来 m 行,每行两个整数 a b ,表示 a 和 b 数字不能紧贴在一起。 「输出格式」 一行一个数,表示答案模 10^9 + 7 的结果。 「样例输入」 2 1 1 2 「样例输出」 544 「数据范围」 对于 30% 的数据:n <= 5 对于 60% 的数据:n <= 100 对于 100% 的数据:0 < n <= 10^9, m <= 36 思路 一开始完全不知道矩阵快速幂有什么用,直到昨天吃了亏,果然,还是刷题刷的少啊,我的线代真是学了浪费= =。 通过邻接矩阵来保存第一个骰子到第n个骰子两个状态的连通性即可能性, 通过矩阵乘法来实现状态堆积

蓝桥杯习题(入门训练)

早过忘川 提交于 2019-12-07 16:19:25
A+B问题 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n1 = sc.nextInt(); int n2 = sc.nextInt(); System.out.println(n1 + n2); } } 序列求和 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long n = sc.nextInt(); long sum = 0; for(long i = 1; i <= n; i++){ sum += i; } System.out.println(sum); } } 圆的面积 import java.util.Scanner; import static java.lang.Math.atan; public class Main { public static void main(String[] args) { Scanner sc = new Scanner

Java web 第二阶段结束(2)

十年热恋 提交于 2019-12-06 13:27:48
距离规定学习结束时间已经过了将近一周了,由于蓝桥杯将至,我们的考核向后推迟了两周的时间。自己最近一直抽时间再看一本名为“Java Web 从入门到精通”的书,通过这本书,我对一个后端与前端的联系,大概有了一个比较模糊的概念,按现在的速度,我应该可以在考核之前完成这个项目。蓝桥杯就快到了,我每天大概可以做1道算法题,还是每天那些破事。 今天的博客不能水了,谈谈对未来的打算吧,大学四年吧,总体目标就是:在小组好好学习,技术一定要到位,因为通过半年来接触的计算机知识,我感觉计算机这块,水挺深的,我们看到的不过是冰山一角。这东西需要日积月累,并且不断练习,才能始终保持表较高的水平,争取想在大三时能够面试到一家比较适合自己的公司 。考研?我本来是打算考研的,可是进了小组,我就开始不想考研了,也不是吃不了那份苦。而是,我觉得我们这个计算机专业,不去考研,工作中就可以很好的提升自己,很多技术也可以自学,况且,以后工作在大城市,新知识基础的机会也很多。我已经迫不及待的想和这个世界交手了。我想挣钱来减轻爸妈的负担。工作之余,我还可以学一点乐器(一直都很想学)。不考研,每天也可以很充实。 其次,是我确实很像学好英语,不是为了及格,也不是为了学习Java时的便利。因为我这个人特别想出去看看,算是我的一个理想吧,我其实想在外国有过一段打工的经历,或者是生活的经历,享受那种文化碰撞的快感,去感受一下异国风光

蓝桥杯——算法分析

夙愿已清 提交于 2019-12-05 20:42:28
蓝桥杯比赛:对算法题进行一些整理,以C语言为主。 题目: 1.杨辉三角形 在屏幕上显示杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ...................................... 问题分析与算法设计 杨辉三角形中的数,正是(x+y)的N次方幂展开式各项的系数。本题作为程序设计中具有代表性的题目,求解的方法很多,这里仅给出一种。 从杨辉三角形的特点出发,可以总结出: 1)第N行有N+1个值(设起始行为第0行) 2)对于第N行的第J个值:(N>=2) 当J=1或J=N+1时:其值为1 J!=1且J!=N+1时:其值为第N-1行的第J-1个值与第N-1行第J个值之和 将这些特点提炼成数学公式可表示为: 1 x=1或x=N+1 c(x,y)= c(x-1,y-1)+c(x-1,y) 其它 本程序应是根据以上递归的数学表达式编制的。 源代码: 1 #include<stdio.h> 2 #include<stdlib.h> 3 4 int c(int x,int y) /*求杨辉三角形中第x行第y列的值*/ 5 { 6 int z; 7 if((y==1)||(y==x+1)) return 1; /*若为x行的第1或第x+1列,则输出1*/ 8 z=c(x-1,y-1)+c(x-1,y); /*否则