北京集训TEST13——PA(第k小数)】的更多相关文章

题目: Description [问题描述] 从n个数中选若干(至少1)个数求和,求所有方案中第k小的和(和相同但取法不同的视为不同方案).[输入格式]    第一行输入2个正整数n,k.    第二行输入这n个正整数.[输出格式]    输出第k小的和.[样例输入]5 121 2 3 5 8[样例输出]8[样例解释]    前12小的和分别为:1 2 3 3 4 5 5 6 6 7 8 8[数据规模和约定]    测试点1,n<=16.    测试点2-3,n<=100,k<=500.…
题目: Description 桌面上放有 n 张卡牌.对于每张卡牌,一面是绿色的,另一面是红色的.卡牌的每一面都标有一个整数.对于卡牌a和卡牌b,卡牌a对卡牌b的好感度为卡牌a绿色面的数与卡牌b红色面的数的乘积. 举个例子,如果卡牌a绿色面标有10,红色面标有3:卡牌b绿色面标有7,红色面标有-2.那么a对b的好感度为 10×(−2)=−20 ,b对a的好感度为 7×3=21 .则a和b的好感度的差异为 |21−(−20)|=41 . 现在,你知道这 n 张卡牌每一面的数,请你找出两张卡牌,使…
题目: Description 有一天,有N个外星人企图入侵地球.地球派出全球战斗力最强的M个人代表人类对抗外星人.根据外星的战斗规则,每个外星人应该分别与一名地球人对战(不同的外星人要与不同的地球人对战).如果任意一个外星人获胜,那么地球将被外星人占领. 幸运的是,人类可以决定对战顺序,且可以决定每次对战的两名战士,但是要保证符合外星的战斗规则. 地球有一个保护神.他能提前预知每一名地球人和每一名外星人的战斗结果.在战争开始前,保护神必须确定第一场战斗的两名战士.举个例子:假设第一场为人类A对…
此算法涉及一个重要数学结论:如果A[k/2-1]<B[k/2-1],那么A[0]~A[k/2-1]一定在第k小的数的序列当中,可以用反证法证明. 算法思想如下: 1,假设A长度为m,B长度为n,m>n,反之亦然. 2,拆分k=pa+pb. 3,如果A[pa-1]<b[pb-1],那证明第A[0]~A[pa-1]一定在合并后k小数序列中.所以,可以把A的前面pa个数字截掉,递归,同理砍掉B数组. 4,递归的边界条件是if m=0,返回B[k-1],如果k = 1(找第一个数)就返回min[…
[问题描述]有两个正整数数列,元素个数分别为N和M.从两个数列中分别任取一个数相乘,这样一共可以得到N*M个数,询问这N*M个数中第K小数是多少.[输入格式]输入文件名为number.in.输入文件包含三行.第一行为三个正整数N,M和K.第二行为N个正整数,表示第一个数列.第三行为M个正整数,表述第二个数列.[输出格式]输出文件名为number.out.输出文件包含一行,一个正整数表示第K小数.[输入输出样例1 1 ]number.in 2 3 41 22 1 3 number.out3[输入输…
题目描述 给定一个整数数组a[0,...,n-1],求数组中第k小数 输入描述 首先输入数组长度n和k,其中1<=n<=5000, 1<=k<=n 然后输出n个整形元素,每个数的范围[1, 5000] 输出描述 该数组中第k小数 样例输入 4 2 1 2 3 4 样例输出 2 其实可以用 堆 来做,保证根节点为最小值,然后逐步剔除.不过当然也可以直接排序.权当熟悉一下STL: #include <vector> #include <algorithm> #i…
第K小数 Description 现在已有N个整数,你有以下三种操作: 1 A:表示加入一个值为A的整数: 2 B:表示删除其中值为B的整数: 3 K:表示输出这些整数中第K小的数: Input 第一行,两个整数N,M,表示最开始有N个整数,总共有M个操作 第二行用空格隔开的N个整数 接下来M行,每行表示一个操作 Output 若干行,一行一个整数,表示所求的第K小的数字 Sample Input 5 5 6 2 7 4 9 1 8 1 6 3 10 2 4 3 3 Sample Output…
这次主要是讲如何在线性时间下找n个元素的未排序序列中第k小的数.当然如果\(k=1 or k=n\),即找最大最小 数,线性时间内遍历即可完成,当拓展到一般,如中位数时,相关算法就值得研究了.这里还要说明的是,排序解 决是一种平凡算法,但其复杂度是\(\Theta(nlogn)\) 这次内容的主要知识点有:1.随机化版本的分治法求解&分析  2.基于1的优化pivot选择的算法&分析   1.随机化版本的分治法求解与分析 首先,要明确的是现在我们要解决的问题是求解n元素序列的第k小数 这种…
题目描述 查找一个数组的第K小的数,注意同样大小算一样大. 如  2 1 3 4 5 2 第三小数为3. 输入描述: 输入有多组数据.每组输入n,然后输入n个整数(1<=n<=1000),再输入k. 输出描述: 输出第k小的整数. 输入例子: 62 1 3 5 2 23 输出例子: 3 代码: import java.util.Arrays; import java.util.Scanner; public class 查找第K小数 { public static void main(Stri…
题目描述: 有n个数,请你找出第k小的数. 输入描述: 第一行有2个正整数n,k(n,k<=10^7)第二行有n个非负数ai(ai<=10^5) 输出描述: 输出第k小的数. 输入样例: 5 21 5 3 4 5 输出样例: 3 题目分析: 这道题目言简意赅,其实很明显我们就能想到一种解法:就是排序.将这n个数字进行排序后,输出第k小的数字就可以了.在这里,我们发现sort函数非常适合解这道题目,因为数据是百万级别的,并且sort函数是默认从小到大排序的.接下来代码就很容易实现了. 代码: #…