题库首页 › 青少年软件编程(C语言) › 题目 4781

求逆序对问题 给定N个数的序列a1,a2,...aN,定义一个数对(ai, aj)为“重要逆序对”的充要条件为 i j 且 ai 2aj。求给定序列中“重要逆序对”的个数。 时间限制:1000 内存限制:256000 输入 本题有多个测试点,每个测试点分为两行:第一行为序列中数字的个数N(1 ≤ N ≤ 200000),第二行为序列a1, a2 ... aN(0 ≤a ≤ 10000000),由空格分开。N=0表示输入结束。 输出 每个测试点一行,输出一个整数,为给序列中“重要逆序对”的个数。 样例输入 10 0 9 8 7 6 5 4 3 2 1 0 样例输出 16 提示 请注意答案范围,如果使用printf输出long long类型,请用%lld

正确答案:参考程序(C++):重要逆序对。i<j且ai>2aj。用归并排序变形统计(比较时用>2倍)。样例输出16。核心:归并统计重要逆序对。

试卷来源:202106 青少年等级考试C/C++真题五级

本卷相关题目

在线做题 同科目题库