【题目描述】
生活中,大多数事物都是有序的,因为顺序的美是最令人陶醉的。所以现在RCDH看了不顺的东西就头痛。所以他想让世界变成有序,所以现在RCDH看了不顺的东西就头痛。所以他想让世界变成有序,可是他只是一个无名小辈,所以只好对数字序列下手。据他所知序列的混乱程度是由“逆序对”的个数决定,公式是Q=2^n,其中Q是指混乱程度,n是指这个序列“逆序对”的个数。逆序对是这样定义的:假设序列中第I个数是ai,若存在Iaj,则就为一个逆序对。你的任务是给定一个序列,计算其混乱程度Q。这个数可能会比较大,你只需输出Qmod1991 的结果。
【输入格式】
第一行,整数n,表示序列中有n个数。
第二行,有n个数。
对于30%的数据
2=
对于100%的数据
2=
数列中的每个数不超过10000000的正整数。
【输出格式】
仅一行,Qmod1991 的值。
【输入样例】
4
1 3 4 2
【输出样例】
4
生活中,大多数事物都是有序的,因为顺序的美是最令人陶醉的。所以现在RCDH看了不顺的东西就头痛。所以他想让世界变成有序,所以现在RCDH看了不顺的东西就头痛。所以他想让世界变成有序,可是他只是一个无名小辈,所以只好对数字序列下手。据他所知序列的混乱程度是由“逆序对”的个数决定,公式是Q=2^n,其中Q是指混乱程度,n是指这个序列“逆序对”的个数。逆序对是这样定义的:假设序列中第I个数是ai,若存在Iaj,则就为一个逆序对。你的任务是给定一个序列,计算其混乱程度Q。这个数可能会比较大,你只需输出Qmod1991 的结果。
【输入格式】
第一行,整数n,表示序列中有n个数。
第二行,有n个数。
对于30%的数据
2=
对于100%的数据
2=
数列中的每个数不超过10000000的正整数。
【输出格式】
仅一行,Qmod1991 的值。
【输入样例】
4
1 3 4 2
【输出样例】
4
这个,求逆序对的裸题。
分治法 先划分区间 分别求解 最后合并答案
最后求2^K没有使用快速幂的意义
由于要求Q mod C
C为1991 是一个定值
完全可以找出2^K mod C的循环 打一个小小的表……
代码如下
#include <cstdio>
#include <algorithm>
#include <cs