2014年java蓝桥杯试题集

上传人:第*** 文档编号:34038246 上传时间:2018-02-20 格式:DOCX 页数:21 大小:36.97KB
返回 下载 相关 举报
2014年java蓝桥杯试题集_第1页
第1页 / 共21页
2014年java蓝桥杯试题集_第2页
第2页 / 共21页
2014年java蓝桥杯试题集_第3页
第3页 / 共21页
2014年java蓝桥杯试题集_第4页
第4页 / 共21页
2014年java蓝桥杯试题集_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《2014年java蓝桥杯试题集》由会员分享,可在线阅读,更多相关《2014年java蓝桥杯试题集(21页珍藏版)》请在金锄头文库上搜索。

1、2014 年蓝桥杯 JAVA 试题集1.问题描述Fibonacci 数列的递推公式为:F n=Fn-1+Fn-2,其中 F1=F2=1。当 n 比较大时,F n也非常大,现在我们想知道,F n除以 10007 的余数是多少。输入格式输入包含一个整数 n。输出格式输出一行,包含一个整数,表示 Fn除以 10007 的余数。 说明:在本题中,答案是要求 Fn除以 10007 的余数,因此我们只要能算出这个余数即可,而不需要先计算出 Fn的准确值,再将计算的结果除以 10007 取余数,直接计算余数往往比先算出原数再取余简单。样例输入10样例输出55样例输入22样例输出7704数据规模与约定1 2.

2、 3. using namespace std;4. 5. int main()6. 7. int a, b;8. cin a b;9. cout 2. 3. int main()4. 5. int a, b;6. scanf(%d%d, 7. printf(%d, a+b);8. return 0;9. 本题的 Java 源代码如下:1. import java.util.*;2. 3. public class Main4. 5. public static void main(String args)6. 7. Scanner sc = new Scanner(System.in);8.

3、 Integer a = sc.nextInt();9. Integer b = sc.nextInt();10. System.out.println(a + b);11. 12.说明:要答题,请点击页面上方的“提交此题”按钮,页面将跳转到提交代码的页面,选择好你的编译语言,将你的编写好的代码粘贴到代码框中,再点击“提交答案”即可。你的答案提交给系统后系统会自动对你的代码进行判分,并跳转到结果的列表里面,你可以直接从列表中看到你提交的代码的状态,一般几秒钟后就可以看到判分的结果。本题作为第一题,在提示中已经分别给了 C+和 Java 的代码,你可以直接把这个代码拷贝过去作为自己的代码提交。请

4、特别注意,Java 的主类名必须是 Main。使用整型变量和输入输出语句。 第一个锦囊是直接可以看的,给出了做题的一个非常简单的提示。 5.基础练习 数列排序 问题描述给定一个长度为 n 的数列,将这个数列按从小到大的顺序排列。1 使用五层循环。16.基础练习 闰年判断 问题描述给定一个年份,判断这一年是不是闰年。当以下情况之一满足时,这一年是闰年:1. 年份是 4 的倍数而不是 100 的倍数;2. 年份是 400 的倍数。其他的年份都不是闰年。输入格式输入包含一个整数 y,表示当前的年份。输出格式输出一行,如果给定的年份是闰年,则输出 yes,否则输出 no。 说明:当试题指定你输出一个字

5、符串作为结果(比如本题的 yes 或者 no,你需要严格按照试题中给定的大小写,写错大小写将不得分。 样例输入2013样例输出no样例输入2016样例输出yes数据规模与约定1990 = y = 2050。使用 if 语句进行判断。算法训练1.算法训练 操作格子问题描述有 n 个格子,从左到右放成一排,编号为 1-n。共有 m 次操作,有 3 种操作类型:1.修改一个格子的权值,2.求连续一段格子权值和,3.求连续一段格子的最大值。对于每个 2、3 操作输出你所求出的结果。输入格式第一行 2 个整数 n,m。接下来一行 n 个整数表示 n 个格子的初始权值。接下来 m 行,每行 3 个整数 p

6、,x,y,p 表示操作类型,p=1 时表示修改格子 x 的权值为 y,p=2 时表示求区间x,y内格子权值和,p=3 时表示求区间x,y内格子最大的权值。输出格式有若干行,行数等于 p=2 或 3 的操作总数。每行 1 个整数,对应了每个 p=2 或 3 操作的结果。样例输入4 31 2 3 42 1 31 4 33 1 4 样例输出63 数据规模与约定对于 20%的数据 n = 100,m = 200。对于 50%的数据 n = 5000,m = 5000。对于 100%的数据 1 = n = 100000,m = 100000,0 = 格子权值 = 10000。使用线段树。2.算法训练 逆

7、序对 问题描述Alice 是一个让人非常愉跃的人!他总是去学习一些他不懂的问题,然后再想出许多稀奇古怪的题目。这几天,Alice 又沉浸在逆序对的快乐当中, 他已近学会了如何求逆序对对数,动态维护逆序对对数等等题目,他认为把这些题让你做简直是太没追求了,于是,经过一天的思考和完善,Alice 终于拿出了 一道他认为差不多的题目:有一颗 2n-1 个节点的二叉树,它有恰好 n 个叶子节点,每个节点上写了一个整数。如果将这棵树的所有叶子节点上的数从左到右写下来,便得到一个序列 a1an。现在想让这个序列中的逆序对数量最少,但唯一的操作就是选树上一个非叶子节点,将它的左右两颗子树交换。他可以做任意多

8、次这个操作。 求在最优方案下,该序列的逆序对数最少有多少。Alice 自己已近想出了题目的正解,他打算拿来和你分享,他要求你在最短的时间内完成。输入格式第一行一个整数 n。下面每行,一个数 x。如果 x=0,表示这个节点非叶子节点,递归地向下读入其左孩子和右孩子的信息,如果 x0,表示这个节点是叶子节点,权值为 x。输出格式输出一个整数,表示最少有多少逆序对。 样例输入300312 样例输出1 数据规模与约定对于 20%的数据,n = 5000。对于 100%的数据,1 = n = 200000,0 = ai231。使用平衡树3.算法训练 安慰奶牛 问题描述Farmer John 变得非常懒,

9、他不想再继续维护供奶牛之间供通行的道路。道路被用来连接 N 个牧场,牧场被连续地编号为 1 到 N。每一个牧场都是一个奶牛的家。FJ 计 划除去 P 条道路中尽可能多的道路,但是还要保持牧场之间 的连通性。你首先要决定那些道路是需要保留的 N-1 条道路。第 j 条双向道路连接了牧场 Sj和 Ej(1 = Sj = N; 1 = Ej = N; Sj != Ej),而且走完它需要 Lj的时间。没有两个牧场是被一条以上的道路所连接。奶牛们非常伤心,因为她们的交通系统被削减了。你需要到每一个奶牛的住处去安慰她们。每次你到达第 i 个牧场的时候(即使你已经到过),你必须花去 Ci的 时间和奶牛交谈。

10、你每个晚上都会在同一个牧场(这是供你选择的)过夜,直到奶牛们都从悲伤中缓过神来。在早上 起来和晚上回去睡觉的时候,你都需要和在你睡觉的牧场的奶牛交谈一次。这样你才能完成你的 交谈任务。假设 Farmer John 采纳了你的建议,请计算出使所有奶牛都被安慰的最少时间。输入格式第 1 行包含两个整数 N 和 P。接下来 N 行,每行包含一个整数 Ci。接下来 P 行,每行包含三个整数 Sj, Ej和 Lj。输出格式输出一个整数, 所需要的总时间(包含和在你所在的牧场的奶牛的两次谈话时间)。样例输入5 71010206301 2 52 3 52 4 123 4 172 5 153 5 6 样例输出

11、176 数据规模与约定5 = N = 10000,N-1 = P = 100000,0 = L j = 1000,1 = C i = 1,000。使用最小生成树算法4.算法训练 最短路 问题描述给定一个 n 个顶点,m 条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从 1 号点到其他点的最短路(顶点从 1 到 n 编号)。输入格式第一行两个整数 n, m。接下来的 m 行,每行有三个整数 u, v, l,表示 u 到 v 有一条长度为 l 的边。输出格式共 n-1 行,第 i 行表示 1 号点到 i+1 号点的最短路。 样例输入3 31 2 -12 3 -13 1 2 样例输出

12、-1-2 数据规模与约定对于 10%的数据,n = 2,m = 2。对于 30%的数据,n = 5,m = 10。对于 100%的数据,1 = n = 20000,1 = m = 200000,-10000 = l = 10000,保证从任意顶点都能到达其他所有顶点。使用最短路算法。5.结点选择 问题描述有一棵 n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了,那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少?输入格式第一行包含一个整数 n 。接下来的一行包含 n 个正整数,第 i 个正整数代表点 i 的权值。接下来一共 n-1 行,每行描述树上的一条边。输出

13、格式输出一个整数,代表选出的点的权值和的最大值。 样例输入51 2 3 4 51 21 32 42 5 样例输出12 样例说明选择 3、4、5 号点,权值和为 3+4+5 = 12 。 数据规模与约定对于 20%的数据, n = 20。对于 50%的数据, n = 1000。对于 100%的数据, n = 100000。权值均为不超过 1000 的正整数。主办单位: 工业和信息化部人才交流中心使用树型动态规划。6.算法训练 K 好数问题描述如果一个自然数 N 的 K 进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是 K 好数。求 L 位 K 进制数中 K 好数的数目。例如 K

14、= 4,L = 2 的时候,所有 K 好数为 11、13、20、22、30、31、33 共 7 个。由于这个数目很大,请你输出它对 1000000007 取模后的值。输入格式输入包含两个正整数,K 和 L。输出格式输出一个整数,表示答案对 1000000007 取模后的值。 样例输入4 2 样例输出7 数据规模与约定对于 30%的数据,K L = 106;对于 50%的数据,K = 16, L = 10;对于 100%的数据,1 = K,L = 100。使用动态规划7. 算法训练 最大最小公倍数 问题描述已知一个正整数 N,问从 1N-1 中任选出三个数,他们的最小公倍数最大可以为多少。输入格

15、式输入一个正整数 N。输出格式输出一个整数,表示你找到的最小公倍数。 样例输入9 样例输出504 数据规模与约定1 = N = 106。使用贪心来选择。8.算法训练 区间 k 大数查询问题描述给定一个序列,每次询问序列中第 l 个数到第 r 个数中第 K 大的数是哪个。输入格式第一行包含一个数 n,表示序列长度。第二行包含 n 个正整数,表示给定的序列。第三个包含一个正整数 m,表示询问个数。接下来 m 行,每行三个数 l,r,K,表示询问序列从左往右第 l 个数到第 r 个数中,从大往小第 K 大的数是哪个。序列元素从 1 开始标号。输出格式总共输出 m 行,每行一个数,表示询问的答案。 样例输入51 2 3 4 521 5 22 3 2 样例输出42 数据规模与约定对于 30%的数据,n,m=100;对于 100%的数据,n,m=1000;保证 k=(r-l+1),序列中的数=10 6。使用排序算法。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号