对于给定的一段正整数序列,逆序对就是序列中ai>aj且i<j的有序对。
咳咳,为什么我要复制一遍而不贴原题,甚至连P1908都没有贴上呢。
因为我今天在和hyf进行了在吉他班的深度颓废交流后,hyf告诉了我很重要的思路:你从未见过的全新做法!!!
天机不泄,请看下文。
//逆序对怎么做,这是你没见过的全新做法 //当然,只要不超时 //天机不可泄,自行查阅 #include<iostream> using namespace std; int main() { int a[100000]; int n,cnt=0; cin>>n; for(int i=1;i<=n;++i) cin>>a[i]; for(int i=1;i<=n;++i) for(int j=1;j<=n-1;++j) { if(a[j]>a[j+1]) { swap(a[j],a[j+1]); cnt++; } } cout<<cnt; }
看懂天机了没有??
因为你用了时间来看这篇天文,所以我要告诉你一个题:MIKU
(你可以用这个代码AC掉它)
看了之后,你会对冒泡排序逆序对有更深的理解
THAT IS ALL