日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

4.1模拟报告

發布時間:2023/12/3 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4.1模拟报告 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

總結

做的很坎坷。。。
一些細節上的玄學bug
(上次也一樣。。。)
還是要加強基礎!!!

T1 x的實根

不貼了,就是水題。。。

T2 二分查找

就是lowerbound

T3逆序對

1.樹狀數組
2.歸并排序
注意:

int q[N]={};

這個{}隱含了一個On的初始化!!!

代碼

#include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<iostream> #define ll long long using namespace std; const int N=1e5+100; const double epc=0.00000000001; int m,n; int a[N]; ll num=0; void guibing(int st,int ed){if(st==ed) return;int mid=(st+ed)>>1;guibing(st,mid);guibing(mid+1,ed); // printf("st=%d,ed=%d\n",st,ed);int p1=st,p2=mid+1;int nm=0;int q[N];while(p1<=mid&&p2<=ed){if(a[p1]<=a[p2]){q[++nm]=a[p1++];}else{q[++nm]=a[p2++];num+=mid-p1+1; // printf("dksfh\n");} // printf("p1=%d p2=%d num=%lld mid=%d\n",p1,p2,num,mid);}while(p1<=mid){q[++nm]=a[p1++];}while(p2<=ed){q[++nm]=a[p2++];}for(int i=1,pl=st;i<=nm;i++,pl++){a[pl]=q[i];} // printf("\n"); } int main(){scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",&a[i]);guibing(1,n);printf("%lld",num);return 0; } /* 4 3 2 3 2 */ #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<iostream> #define ll long long using namespace std; const int N=1e5+100; const double epc=0.00000000001; int m,n; int a[N],b[N]; int tree[N]; ll ans; bool cmp(int x,int y){return x>y; } void add(int x){for(int i=x;i<=N;i+=i&(-i)){tree[i]++; // printf("pl=%d tree=%d\n",i,tree[i]);}return; } int query(int x){int res=0; // printf("query------%d:\n",x);for(;x;x-=x&(-x)){res+=tree[x]; // printf("pl=%d res=%d\n",x,res);}return res; } int main(){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);b[i]=a[i];}sort(b+1,b+1+n);int num=unique(b+1,b+1+n)-b-1;for(int i=n;i>=1;i--){a[i]=lower_bound(b+1,b+1+num,a[i])-b; // printf("ooooo%d:\n",a[i]);ans+=query(a[i]-1);add(a[i]);}printf("%lld",ans);return 0; } /* 5 3 2 3 2 1 */

總結

以上是生活随笔為你收集整理的4.1模拟报告的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。