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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【bzoj3289】 Mato的文件管理

發布時間:2024/4/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【bzoj3289】 Mato的文件管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.lydsy.com/JudgeOnline/problem.php?id=3289?(題目鏈接)

題意

  求區間逆序對

Solution

  離線無修改查詢,莫隊轉移;樹狀數組維護區間和。

  關鍵:?
   ①在一列數的后面添加一個數,逆序對數會增加 數列中比它大的數的個數。?
   ②在一列數的后面刪除一個數,逆序對數會減少 數列中比它大的數的個數。?
   ③在一列數的前面添加一個數,逆序對數會增加 數列中比它小的數的個數。?
   ④在一列數的前面刪除一個數,逆序對數會減少 數列中比它小的數的個數。

  這樣一來就做法就很顯然了。

代碼

// bzoj3289 #include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<map> #define inf 2147483640 #define LL long long #define free(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout); using namespace std; inline LL getint() {LL x=0,f=1;char ch=getchar();while (ch>'9' || ch<'0') {if (ch=='-') f=-1;ch=getchar();}while (ch>='0' && ch<='9') {x=x*10+ch-'0';ch=getchar();}return x*f; }const int maxn=50010; struct ask {int l,r,id;}t[maxn]; int pos[maxn],a[maxn],b[maxn],c[maxn],ans[maxn],block,n,m,q;int lowbit(int x) {return x&-x; } void add(int x,int val) {for (int i=x;i<=m;i+=lowbit(i)) c[i]+=val; } int query(int x) {int t=0;for (int i=x;i>=1;i-=lowbit(i)) t+=c[i];return t; } bool cmp(ask a,ask b) {return pos[a.l]==pos[b.l] ? a.r<b.r : pos[a.l]<pos[b.l]; } int main() {scanf("%d",&n);for (int i=1;i<=n;i++) scanf("%d",&a[i]),b[i]=a[i];scanf("%d",&q);for (int i=1;i<=q;i++) scanf("%d%d",&t[i].l,&t[i].r),t[i].id=i;sort(b+1,b+1+n);m=unique(b+1,b+1+n)-b-1;for (int i=1;i<=n;i++) a[i]=lower_bound(b+1,b+1+m,a[i])-b;block=(int)sqrt(n);for (int i=1;i<=n;i++) pos[i]=(i-1)/block+1;sort(t+1,t+1+q,cmp);int res=0;for (int i=1,l=1,r=0;i<=q;i++) {for (;r<t[i].r;r++)res+=r+1-l-query(a[r+1]),add(a[r+1],1);for (;r>t[i].r;r--)res-=r-l-query(a[r]-1),add(a[r],-1);for (;l<t[i].l;l++)res-=query(a[l]-1),add(a[l],-1);for (;l>t[i].l;l--)res+=query(a[l-1]),add(a[l-1],1);ans[t[i].id]=res;}for (int i=1;i<=q;i++) printf("%d\n",ans[i]);return 0; }

  

轉載于:https://www.cnblogs.com/MashiroSky/p/5914536.html

總結

以上是生活随笔為你收集整理的【bzoj3289】 Mato的文件管理的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 美国一级大黄一片免费中文 | 国产深喉视频一区二区 | 波多野结衣一区二区在线 | 五月婷婷中文 | 欧美韩日精品 | 真人真事免费毛片 | 六月婷婷综合网 | 夜夜夜操 | 九九在线免费视频 | 国产成人久久精品麻豆二区 | 国产精品高潮呻吟久久久久久 | 五月婷久久 | 另类小说色综合 | 国产高清片 | 日本道在线观看 | 欧美久草视频 | 木木影院| 91精品国产电影 | 少妇搡bbbb搡bbbb | 中文字幕第八页 | 玩弄人妻少妇500系列视频 | 国产亚洲精品久久久久丝瓜 | 日韩在线欧美在线 | 国产午夜网站 | 一级黄色毛毛片 | 人物动物互动39集免费观看 | 豆花免费跳转入口官网 | 91麻豆精品秘密入口 | 国产人妖av | 99热这里都是精品 | 国产精品爽爽久久 | 久久爱一区二区 | 99久热| 国产精品久久91 | 蜜桃精品视频 | 日韩精品视频观看 | 一区二区中文字幕 | 深夜成人在线观看 | 黄色大片免费网站 | 国产精品丝袜视频 | a在线免费观看 | 日韩精品999 | 国产成人影视 | 亚洲高清中文字幕 | 伊人66| 亚洲九九视频 | 五月婷婷亚洲 | a级片网址 | 国产人与禽zoz0性伦 | 亚洲二三区| 免费看h网站 | 91在线日本| 肉丝肉足丝袜一区二区三区 | 亚洲一区二区三区四区五区六区 | 秋霞成人 | 好男人.www | 性欧美精品男男 | 中文字幕国产亚洲 | 欧美成人aaaa | 日本一区视频在线观看 | 狠狠澡 | 久久久久久久久久久久久女国产乱 | 成年人久久 | 午夜视频久久久 | 国产69精品久久久久久久久久 | 伦理片久久 | 成人免费黄色片 | 中国国产精品 | 国产99久久久 | 免费视频福利 | 五月婷婷爱爱 | 男女扒开双腿猛进入爽爽免费 | 日韩中文字幕亚洲 | 日本精品少妇 | 欧美在线一二三四区 | 欧美 日韩 高清 | 九九精品免费 | 岛国av免费在线 | 亚洲一区二区天堂 | 羞羞答答一区 | 欧洲一区二区在线 | 乳揉みま痴汉4在线播放 | 麻豆蜜桃av | 91久久国产精品 | 国产国产乱老熟女视频网站97 | 九九热综合 | 密臀av在线 | 性三级视频 | 国产精品羞羞答答在线 | 九九自拍偷拍 | 国产午夜精品理论片 | 密色av| av片亚洲| aaa大片十八岁禁止 中文字幕亚洲在线观看 | 91噜噜噜 | 亚洲精品v | 亚洲国产精品久久久久久久 | 日韩免费在线视频 | 欧美高清在线视频 |