1、算法训练 编号:ALGO-1题目:区间 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,
2、m0; i-)int a = readInt();int b = readInt();int c = readInt();int tn = new intb-a+1;for(int j=0; j57);for(;(i i=in.read()sum = sum*10 + (ireturn sum;编号:ALGO-2题目:最大最小公倍数关键字:贪心类型:普通试题问题描述已知一个正整数 N,问从 1N 中任选出三个数,他们的最小公倍数最大可以为多少。输入格式输入一个正整数 N。输出格式输出一个整数,表示你找到的最小公倍数。样例输入9样例输出504数据规模与约定1 1)for(i=1;i 0) int
3、 u = statop - 1;boolean Ed = false;for (int i = headu; i + 1 != 0; i = Ei.nxt) int v = Ei.v;if (visv) continue;Ed = true;statop+ = v;visv = true;if (Ed) continue;-top;for (int i = headu; i + 1 != 0; i = Ei.nxt) int v = Ei.v;dpv0 += Math.max(dpu0, dpu1);dpv1 += dpu0;void run() throws IOException int
4、n = cin.nextInt();for (int i = 1; i q=new LinkedList();static boolean inq; public static void main(String args) throws IOExceptionint i;BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in);String str = bfr.readLine();String s = str.split(“s“);n=Integer.parseInt(s0);m=Integer.parseI
5、nt(s1);n+;m+;u=new intm;v=new intm;w=new intm;first=new intn;next=new intm;d=new intn;inq=new booleann; for(i=1;idx+wi)dvi=dx+wi;if(!inqvi)inqvi=true;q.offer(vi);编号:ALGO-6题目:安慰奶牛关键字:最小生成树类型:普通试题 问题描述Farmer John 变得非常懒,他不想再继续维护供奶牛之间供通行的道路。道路被用来连接 N个牧场,牧场被连续地编号为 1 到 N。每一个牧场都是一个奶牛的家。FJ 计划除去 P 条道路中尽可能多的道
6、路,但是还要保持牧场之间 的连通性。你首先要决定那些道路是需要保留的 N-1 条道路。第 j 条双向道路连接了牧场 Sj 和 Ej(1 path =new ArrayList();public static int getfather(int x) if (x!=fatherx) fatherx=getfather(fatherx);return fatherx;public static void _qst_w(int l,int r) int i=l,j=r,mw=path.get(i+j)/2).l; while(imw) j-; if(i 1;build(id 1;if (pos 1;if (r mid) return sum(id 1;