大网站,链接提取视频的网站,58同城本地网页版,网站模块图两列排序后将编号一一对应 归并排序求逆序对 #xff08;每一次交换就去掉一个逆序对#xff09; 1 #includecstdio2 #includecstring3 #includealgorithm4 #define ll long long5 using namespace std;6 const int N100100;7 const ll P99999997;8 … 两列排序后将编号一一对应 归并排序求逆序对 每一次交换就去掉一个逆序对 1 #includecstdio2 #includecstring3 #includealgorithm4 #define ll long long5 using namespace std;6 const int N100100;7 const ll P99999997;8 ll tmp[N],ss[N],ans,n;9 struct fx{
10 ll w;
11 int id;
12 }a[N],b[N];
13 bool cmp(fx p,fx q){
14 return p.wq.w;
15 }
16 ll read(){
17 ll sum0;
18 char chgetchar();
19 while (ch0||ch9)
20 chgetchar();
21 while (ch0ch9){
22 sumsum*10ch-0;
23 chgetchar();
24 }
25 return sum;
26 }
27 void mergesort(int l,int r){
28 if(lr)
29 return;
30 int m(lr)1;
31 mergesort(l,m);
32 mergesort(m1,r);
33 int il;
34 int jm1;
35 int kl;
36 while (imjr){
37 if (ss[i]ss[j]){
38 tmp[k]ss[i];
39 i;
40 k;
41 }
42 else{
43 ans(ansm-i1)%P;//区间内逆序对个数
44 tmp[k]ss[j];
45 j;
46 k;
47 }
48 }
49 while (im){
50 tmp[k]ss[i];
51 k;
52 i;
53 }
54 while (jr){
55 tmp[k]ss[j];
56 k;
57 j;
58 }
59 for (int il;ir;i){
60 ss[i]tmp[i];
61 }
62 }
63 int main(){
64 ans0;
65 nread();
66 for (int i1;in;i){
67 a[i].wread();
68 a[i].idi;
69 }
70 for (int i1;in;i){
71 b[i].wread();
72 b[i].idi;
73 }
74 sort(a1,an1,cmp);
75 sort(b1,bn1,cmp);
76 for (int i1;in;i)
77 ss[a[i].id]b[i].id;
78 mergesort(1,n);
79 printf(%lld,ans%P);
80 return 0;
81 } STD 转载于:https://www.cnblogs.com/Absolute-Zero/p/6013878.html