蓝桥杯练习系统算法训练习题加答案解析java版本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法训练
编号:ALGO-1
题目:区间k大数查询列
关键字:排序查找
类型:普通试题
问题描述
给定一个序列,每次询问序列中第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),序列中的数<=1000000。
本题的Java参考代码如下:
import class Main
{
private static BufferedInputStream in = new BufferedInputStream;
}
public static void main(String[] args) throws IOException
{
int[] nums = new int[readInt()];
for(int i=0; i<; i++)
{
nums[i] = readInt();
}
for(int i=readInt(); i>0; i--)
<
{
int a = readInt();
int b = readInt();
int c = readInt();
int[] tn = new int[b-a+1];
for(int j=0; j<; j++)
{
tn[j] = nums[a-1+j];
?
}
(tn);
}
}
private static int readInt() throws IOException
{
int i,sum=0;
"
while(((i=())&48) != 48 || i>57);
for(;(i&56) == 48 || (i&62) == 56; i=())
sum = sum*10 + (i&15);
return sum;
}
}
…
编号:ALGO-2
题目:最大最小公倍数
关键字:贪心
类型:普通试题
问题描述
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。
输入格式
输入一个正整数N。
¥
输出格式
输出一个整数,表示你找到的最小公倍数。
样例输入
9
样例输出
504
数据规模与约定
1 <= N <= 1000000。
本题的Java参考代码如下:
<
import class Main{
public static void main(String[] args) {
Scanner sc = new Scanner;
int n = ();
long anser = 1;
switch (n) {
case 95152:;
public class Main {
)
public static void main(String[] args) throws IOException {
BufferedReader bfr = new BufferedReader(new InputStreamReader);
String s[] = ().split(" +");
int K = (s[0]);
int L = (s[1]);
int f[][] = new int[L][K];
int i,j,k,sum=0;
for(j=0;j<K;j++) f[0][j] = 1;
f[0][0]=0;
《
if(L>1)
{
for(i=1;i<L;i++)
{
for(j=0;j<K;j++)
{
for(k=0;k<K;k++)
if(k!=j-1 && k!=j+1)
{
f[i][j]+=f[i-1][k];
(
f[i][j]%=07;
}
}
}
}
for(j=0;j<K;j++) { sum+=f[L-1][j]; sum%=07; }
}
}
编号:ALGO-4
题目:节点选择
:
关键字:树形动态规划
类型:普通试题
问题描述
有一棵n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了,那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少
输入格式
第一行包含一个整数n 。
接下来的一行包含n 个正整数,第i 个正整数代表点i 的权值。
、
接下来一共n-1 行,每行描述树上的一条边。
输出格式
输出一个整数,代表选出的点的权值和的最大值。
样例输入
5