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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

BZOJ2837 : 小强的形状

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ2837 : 小强的形状 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

離散化后通過樹狀數組求出:

b[i]為i之前比它小的。

c[i]為i之前比它大的=i-1-i之前小于等于它的。

d[i]為i之后比它小的。

e[i]為i之后比它大的=n-i-f[i]。

f[i]為i之后小于等于它的。


則:

$cnt_{123}=\sum_{i=1}^n b[i]e[i]$

$cnt_{321}=\sum_{i=1}^n c[i]d[i]$

$cnt_{213}$=將序列a翻轉后的$cnt_{312}$

$cnt_{231}$=將序列a翻轉后的$cnt_{132}$

$cnt_{312}=\sum_{i=1}^n b[i]c[i]-cnt_{132}$

$cnt_{132}$可以這樣計算:

枚舉$3$的位置$i$,它右邊比它小的$k$有$b[k]$的貢獻,還要減去$i$右下角內$12$形狀的二元組的個數,即右下角$b[k]+f[k]$的和$-C_{d[i]}^2$。

?

時間復雜度$O(n\log n)$。

?

#include<cstdio> #include<algorithm> #define N 100010 typedef long long ll; int n,i,a[N],b[N],c[N],d[N],e[N],f[N];ll bit[N],c1,c2,c3,c4,c5,c6,all; inline void read(int&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';} inline int lower(int x){int l=1,r=n,mid,t;while(l<=r)if(b[mid=(l+r)>>1]<=x)l=(t=mid)+1;else r=mid-1;return t; } inline void add(int x,int y){for(;x<=n;x+=x&-x)bit[x]+=y;} inline ll ask(int x){ll t=0;for(;x;x-=x&-x)t+=bit[x];return t;} void write(ll x){for(printf("0."),i=0;i<20;i++)x*=10,printf("%d",x/all),x%=all;puts("");} int main(){for(read(n),i=1;i<=n;i++)read(a[i]),b[i]=a[i];for(std::sort(b+1,b+n+1),i=1;i<=n;i++)a[i]=lower(a[i]);for(i=1;i<=n;i++)b[i]=ask(a[i]-1),c[i]=i-1-ask(a[i]),add(a[i],1);for(i=1;i<=n;i++)bit[i]=0;for(i=n;i;i--)d[i]=ask(a[i]-1),f[i]=ask(a[i]),e[i]=n-i-f[i],add(a[i],1);for(i=1;i<=n;i++)bit[i]=0;for(i=n;i;i--){c1+=1LL*b[i]*e[i],c6+=1LL*c[i]*d[i];c5+=1LL*b[i]*c[i],c2+=ask(a[i]-1)-1LL*d[i]*(d[i]-1)/2,add(a[i],b[i]+f[i]);}c5-=c2;for(i=1;i<n-i+1;i++)std::swap(a[i],a[n-i+1]);for(i=1;i<=n;i++)bit[i]=0;for(i=1;i<=n;i++)b[i]=ask(a[i]-1),c[i]=i-1-ask(a[i]),add(a[i],1);for(i=1;i<=n;i++)bit[i]=0;for(i=n;i;i--)d[i]=ask(a[i]-1),f[i]=ask(a[i]),add(a[i],1);for(i=1;i<=n;i++)bit[i]=0;for(i=n;i;i--)c3+=1LL*b[i]*c[i],c4+=ask(a[i]-1)-1LL*d[i]*(d[i]-1)/2,add(a[i],b[i]+f[i]);c3-=c4;all=c1+c2+c3+c4+c5+c6;write(c1),write(c2),write(c3),write(c4),write(c5),write(c6);return 0; }

  

轉載于:https://www.cnblogs.com/clrs97/p/4858143.html

總結

以上是生活随笔為你收集整理的BZOJ2837 : 小强的形状的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 男女做事网站 | 精品国产乱码久久久久久蜜臀 | 亚洲欧美日韩激情 | 成人高清视频免费观看 | 久久草网站| 少妇欧美激情一区二区三区 | 欧美福利视频 | 久久久久久久国产精品毛片 | 亚洲男人第一av | 亚洲精品一二区 | 狠狠干天天干 | 99riav1国产精品视频 | 91精品国产麻豆国产自产在线 | 国产精品1区| 国产口爆吞精一区二区 | 国内老熟妇对白hdxxxx | 亚洲黄色中文字幕 | 日韩一区二区三区视频 | va视频在线观看 | 中文字幕亚洲成人 | 欧美热热 | 国产传媒在线 | 国产a视频免费观看 | 99视频在线免费观看 | 强伦人妻一区二区三区视频18 | 色播激情| 欧美激情视频网址 | 国产一级片精品 | 日日操操 | 成年人毛片视频 | 中文永久免费观看 | 国产成人自拍视频在线 | 免费在线一区二区三区 | 成人毛片在线观看 | 五月婷婷六月色 | 亚洲最新在线 | 成人精品一区二区 | 国产成人午夜精品 | 国产不卡视频一区二区三区 | 国产精品av在线 | 中文字幕一区二区三区四区免费看 | 老司机深夜福利网站 | 2019中文字幕在线视频 | 一区二区在线影院 | 90岁肥老奶奶毛毛外套 | 国产精品一卡 | 亚洲色在线视频 | 欧美综合视频在线 | 亚洲美女自拍偷拍 | 99涩涩 | 久久99国产精品久久99果冻传媒 | 中文字幕韩日 | 麻豆传谋在线观看免费mv | 中文在线一区二区三区 | 欧美啪啪网站 | 久久久男人的天堂 | 夜夜骑夜夜操 | 午夜啪啪网 | 色999在线观看 | 浓精h攵女乱爱av | av影视网| 永久免费av | 国产1页| 亚洲女同志亚洲女同女播放 | 日韩色图在线观看 | 91动态图 | 精品电影在线观看 | 国产日韩欧美综合在线 | 久久久综合 | 蜜桃香蕉视频 | 在线观看视频国产 | 精品国产一区二区三区av性色 | 91超碰人人| 婷婷的五月天 | 一级片www | 日韩精品美女 | 91久久在线观看 | 亚洲精品免费在线观看 | 欧美精品久久96人妻无码 | 久久网亚洲 | 国产日本在线 | 国产精品91在线观看 | 无码人妻精品一区二区三应用大全 | 91视频专区| 精品女厕偷拍一区二区 | 国产免费不卡av | 色婷婷久久一区二区三区麻豆 | 欧美极品一区二区三区 | 色资源在线观看 | 亚洲精品字幕在线观看 | 亚洲精品乱码久久久久久蜜桃麻豆 | 黄色欧美大片 | 狠狠操狠狠摸 | 亚洲女同一区二区 | 九九精品国产 | 日日日日日日 | 国产日本视频 | 催眠美妇肉奴系统 | 五月天丁香婷 |