2020年1月12日
摘要: 给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。 逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆序对;否则不是。 输入格式 第一行包含整数n,表示数列的长度。 第二行包含 n 个整数,表示整个数列。 输出格式 输出一个 阅读全文
posted @ 2020-01-12 20:58 qdu_lkc 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 给定一个长度为n的整数数列,以及一个整数k,请用快速选择算法求出数列的第k小的数是多少。 输入格式 第一行包含两个整数 n 和 k。 第二行包含 n 个整数(所有整数均在1~109109范围内),表示整数数列。 输出格式 输出一个整数,表示数列的第k小数。 数据范围 1≤n≤1000001≤n≤10 阅读全文
posted @ 2020-01-12 20:44 qdu_lkc 阅读(371) 评论(0) 推荐(1) 编辑
摘要: 给定一个浮点数n,求它的三次方根。 输入格式 共一行,包含一个浮点数n。 输出格式 共一行,包含一个浮点数,表示问题的解。 注意,结果保留6位小数。 数据范围 −10000≤n≤10000−10000≤n≤10000 输入样例: 1000.00 输出样例: 10.000000注意浮点数的精度;注意浮 阅读全文
posted @ 2020-01-12 20:32 qdu_lkc 阅读(588) 评论(0) 推荐(0) 编辑
摘要: 给定一个按照升序排列的长度为n的整数数组,以及 q 个查询。 对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。 如果数组中不存在该元素,则返回“-1 -1”。 输入格式 第一行包含整数n和q,表示数组长度和询问个数。 第二行包含n个整数(均在1~10000范围内),表示完整数组 阅读全文
posted @ 2020-01-12 19:28 qdu_lkc 阅读(255) 评论(0) 推荐(0) 编辑
摘要: bool check(int x) {/* ... */} // 检查x是否满足某种性质 // 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用: int bsearch_1(int l, int r) { while (l < r) { int mid = l + r >> 阅读全文
posted @ 2020-01-12 19:09 qdu_lkc 阅读(109) 评论(0) 推荐(0) 编辑
摘要: //注意数的个数太多的情况下,数组开全局 static int a[]=new int[100005]; static int b[]=new int[100005]; public static void merge_sort(int a[],int l,int r){ if(l>=r) retu 阅读全文
posted @ 2020-01-12 16:03 qdu_lkc 阅读(106) 评论(0) 推荐(0) 编辑
摘要: public static void quick_sort(int a[],int l,int r){ if(l>=r) return; int i=l-1,j=r+1,x=a[l+r>>1]; while(i<j){ do i++; while(a[i]<x); do j--; while(a[j 阅读全文
posted @ 2020-01-12 15:30 qdu_lkc 阅读(73) 评论(0) 推荐(0) 编辑