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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

XTU 1250 Super Fast Fourier Transform

發布時間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XTU 1250 Super Fast Fourier Transform 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

$2016$長城信息杯中國大學生程序設計競賽中南邀請賽$H$題

排序,二分。

對$a$數組,$b$數組從小到大進行排序。

統計每一個$a[i]$作為較大值的時候與$b[i]$對答案的貢獻。反過來再統計以$b[i]$為較大值時與$a[i]$對答案的貢獻。

以前者舉例說明:

觀察這個:$?\sqrt {|a[i] - b[j]|}? $,按照題目中給出的范圍,這個東西最大只有$1000$。

也就是說,我們在計算一個$a[i]$與$b[j]$對答案的貢獻時候,不用從$1$到$m$枚舉$j$,因為肯定是一段一段相同的,所以分段計算即可。二分一下就可以分段計算了。

#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<map> #include<set> #include<queue> #include<stack> #include<iostream> using namespace std; typedef long long LL; const double pi=acos(-1.0),eps=1e-8;const int maxn=100010; int n,m; int a[maxn],b[maxn];int main() {while(~scanf("%d%d",&n,&m)){for(int i=1;i<=n;i++) scanf("%d",&a[i]);for(int i=1;i<=m;i++) scanf("%d",&b[i]);sort(a+1,a+1+n); sort(b+1,b+1+m);LL ans=0;for(int i=1;i<=n;i++){int L=1,R=m,pos=-1;while(L<=R){int mid=(L+R)/2;if(b[mid]<a[i]) L=mid+1,pos=mid;else R=mid-1;}if(pos==-1) continue;int now=1, p;while(now<=pos){int num=(int)(eps+sqrt(1.0*(a[i]-b[now])));L=now,R=pos;while(L<=R){int mid=(L+R)/2;int tmp=(int)(eps+sqrt(1.0*(a[i]-b[mid])));if(tmp<num) R=mid-1;else L=mid+1,p=mid;}ans=ans+(LL)(p-now+1)*(LL)num;now=p+1;}}for(int i=1;i<=m;i++){int L=1,R=n,pos=-1;while(L<=R){int mid=(L+R)/2;if(a[mid]<b[i]) L=mid+1,pos=mid;else R=mid-1;}if(pos==-1) continue;int now=1, p;while(now<=pos){int num=(int)(eps+sqrt(1.0*(b[i]-a[now])));L=now,R=pos;while(L<=R){int mid=(L+R)/2;int tmp=(int)(eps+sqrt(1.0*(b[i]-a[mid])));if(tmp<num) R=mid-1;else L=mid+1,p=mid;}ans=ans+(LL)(p-now+1)*(LL)num;now=p+1;}}cout<<ans<<endl;}return 0; }

?

轉載于:https://www.cnblogs.com/zufezzt/p/5818931.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的XTU 1250 Super Fast Fourier Transform的全部內容,希望文章能夠幫你解決所遇到的問題。

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