亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

gym-101138D(后綴和,莫隊算法,容斥原理,好題)

2019-11-10 17:41:13
字體:
來源:轉載
供稿:網友

題目鏈接D. Strange Queriestime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output

You are given an array with n integers a1,?a2,?...,?an, and q queries to answer.

Each query consists of four integers l1, r1, l2 and r2. Your task is to count the number of pairs of indices (i,?j) satisfying the following conditions:

ai?=?ajl1?≤?i?≤?r1l2?≤?j?≤?r2Input

The first line of the input contains an integer n (1?≤?n?≤?50?000) — the size of the given array.

The second line contains n integers a1,?a2,?...,?an (1?≤?ai?≤?n).

The third line contains an integer q (1?≤?q?≤?50?000) — the number of queries.

Each of the next q lines contains four integers l1, r1, l2, r2 (1?≤?l1?≤?r1?≤?n, 1?≤?l2?≤?r2?≤?n), describing one query.

Output

For each query count the number of sought pairs of indices (i,?j) and PRint it in a separate line.

Examplesinput
71 5 2 1 7 2 281 3 4 52 3 5 71 4 3 72 6 4 71 6 2 53 3 6 74 5 1 42 3 4 5output
12566220

題意簡明。

題解:

使用莫隊算法

假設當前左右指針分別為l和r,一共n個數

對于指針l,維護一個后綴[l,n],算這個后綴每個數出現次數。

對于指針r,維護一個后綴(r,n]算這個后綴每個數出現次數。

對區間[l,r)維護[l,n]和[r,n]中相等的數的對數。

假設區間[l,r)的答案為f(l,r).

那么,對于詢問l1,r1,l2,r2, 答案是f(l1,l2)-f(l1,r2+1)-f(r1+1,l2)+f(r1+1,r2+1).

#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<vector>#include<queue>#include<stack>#include<cmath>using namespace std;#define rep(i,a,n) for (int i=a;i<n;i++)#define per(i,a,n) for (int i=n-1;i>=a;i--)#define pb push_back#define fi first#define se secondtypedef vector<int> VI;typedef long long ll;typedef pair<int,int> PII;const int inf=0x3fffffff;const ll mod=1000000007;const int maxn=50000+100;int unit;struct node{    int l,r,id,k;    bool Operator <(const node&b) const{        if(l/unit==b.l/unit) return r<b.r;        else return l/unit<b.l/unit;    }    node(int x=0,int y=0):l(x),r(y) {}}a[maxn*4];int m=0,n;ll ans[maxn];int num[maxn];ll cnt[2][maxn];ll res;void solve(){    sort(a,a+m);    memset(cnt,0,sizeof(cnt));    memset(ans,0,sizeof(ans));    int l=n+1,r=n+1;   //    res=0;    rep(i,0,m)    {        while(l<a[i].l)        {            res-=1ll*cnt[0][num[l]]*cnt[1][num[l]];            cnt[0][num[l]]--;            res+=1ll*cnt[0][num[l]]*cnt[1][num[l]];            l++;        }        while(l>a[i].l)        {            l--;            res-=1ll*cnt[0][num[l]]*cnt[1][num[l]];            cnt[0][num[l]]++;            res+=1ll*cnt[0][num[l]]*cnt[1][num[l]];        }        while(r<a[i].r)        {            res-=1ll*cnt[1][num[r]]*cnt[0][num[r]];            cnt[1][num[r]]--;            res+=1ll*cnt[1][num[r]]*cnt[0][num[r]];            r++;        }        while(r>a[i].r)        {            r--;            res-=1ll*cnt[1][num[r]]*cnt[0][num[r]];            cnt[1][num[r]]++;            res+=1ll*cnt[1][num[r]]*cnt[0][num[r]];        }        ans[a[i].id]+=a[i].k*res;    }}int main(){    scanf("%d",&n);    unit=(int)sqrt(n);    rep(i,1,n+1) scanf("%d",&num[i]);    int q;    scanf("%d",&q);    rep(i,0,q)    {        int l1,r1,l2,r2;        scanf("%d%d%d%d",&l1,&r1,&l2,&r2);        r1++,r2++;        a[m]=node(l1,l2),a[m].id=i,a[m].k=1;        a[++m]=node(l1,r2),a[m].id=i,a[m].k=-1;        a[++m]=node(r1,l2),a[m].id=i,a[m].k=-1;        a[++m]=node(r1,r2),a[m].id=i,a[m].k=1;        m++;    }    solve();    rep(i,0,q)    printf("%lld/n",ans[i]);    return 0;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97在线免费观看视频| 国模精品视频一区二区| 清纯唯美日韩制服另类| 国产精品久久久久免费a∨大胸| 91在线高清免费观看| 国产精品久久久久久中文字| 91精品国产91久久久久福利| 欧美另类暴力丝袜| 黑人巨大精品欧美一区二区| 欧洲亚洲女同hd| 成人在线一区二区| 欧美亚洲国产视频小说| 欧美成人第一页| 91日韩在线播放| 国产精品女人网站| 亚洲综合自拍一区| 亚洲护士老师的毛茸茸最新章节| 九九视频这里只有精品| 日韩中文av在线| 精品女厕一区二区三区| 九九久久久久久久久激情| 九色91av视频| 尤物九九久久国产精品的特点| 亚洲精品之草原avav久久| 国产精品久久在线观看| 最近免费中文字幕视频2019| 成人福利免费观看| 亚洲精美色品网站| 日韩电视剧在线观看免费网站| 国产精品男人爽免费视频1| 黑人巨大精品欧美一区免费视频| 亚洲第一精品电影| 日韩欧美主播在线| 亚洲女成人图区| 亚洲缚视频在线观看| 日本成人在线视频网址| 欧美一区二区三区免费观看| 欧美激情视频免费观看| 亚洲美女免费精品视频在线观看| 97久久精品人搡人人玩| 日本国产一区二区三区| 国产69精品久久久久9999| 国产亚洲视频在线观看| 91精品国产乱码久久久久久蜜臀| 亚洲天堂成人在线视频| 精品国产一区二区三区久久| 亚洲国产美女精品久久久久∴| 久久久久中文字幕2018| 色婷婷久久一区二区| 国产在线视频不卡| 日本欧美精品在线| 高清欧美性猛交xxxx| 欧美性猛交xxxx免费看久久久| 国产精品一区二区在线| 亚洲香蕉伊综合在人在线视看| 欧美日韩福利视频| 日本精品性网站在线观看| 日韩有码视频在线| 亚洲人成五月天| 国产精品黄页免费高清在线观看| 欧美性猛交xxxx黑人| 欧美日韩成人在线播放| 91精品国产99久久久久久| 日韩成人xxxx| 亚洲第一黄色网| 精品久久久久久亚洲精品| 日本免费久久高清视频| 亚洲男人第一网站| 亚洲视频电影图片偷拍一区| 久久免费福利视频| 亚洲伊人久久大香线蕉av| 欧美小视频在线| 欧美乱妇高清无乱码| 国产精品狼人色视频一区| 国产精品直播网红| 欧美成人中文字幕在线| 亚洲国产成人精品女人久久久| 国产精品日日做人人爱| 国产精品久久久久一区二区| 狠狠色狠狠色综合日日五| 国产日本欧美一区二区三区在线| 欧美精品精品精品精品免费| 欧美日韩xxxxx| 日韩激情视频在线播放| 精品亚洲男同gayvideo网站| 日韩欧美在线看| 日韩在线视频免费观看高清中文| 日韩欧美在线国产| 久久久久久亚洲精品不卡| 欧美日韩福利电影| 8x拔播拔播x8国产精品| 91老司机精品视频| 中文字幕在线国产精品| 日韩电影大片中文字幕| 久久人人97超碰精品888| 国产精品看片资源| 国产午夜精品美女视频明星a级| 亚洲精品理论电影| 色先锋久久影院av| 国产成人精品亚洲精品| 国产精品视频自拍| 丝袜美腿精品国产二区| 在线播放国产一区中文字幕剧情欧美| 欧美大片在线免费观看| 国产91免费观看| 国产精品情侣自拍| 91精品综合视频| 欧美极品少妇全裸体| 亚洲老司机av| 国产精品美腿一区在线看| 国产成人综合精品| 欧美怡红院视频一区二区三区| 精品亚洲夜色av98在线观看| 黄色一区二区在线| 69久久夜色精品国产69| 欧美男插女视频| 久久这里只有精品视频首页| 久久香蕉国产线看观看av| 亚洲欧美一区二区激情| 日韩高清欧美高清| 在线观看日韩欧美| 91精品国产自产91精品| 欧美性视频精品| 国产精品久久视频| 欧美在线精品免播放器视频| 在线亚洲欧美视频| 国产综合视频在线观看| 91系列在线播放| 亚洲最大的av网站| 伊人精品在线观看| 国产精品毛片a∨一区二区三区|国| 成人午夜两性视频| 欧美黄色性视频| 欧美成人在线网站| 国产不卡av在线| 国产成人精品电影久久久| 日韩人在线观看| 亚洲图片制服诱惑| 亚洲曰本av电影| 97在线视频一区| 国产精选久久久久久| 岛国av一区二区三区| 国产成人一区二| 中文字幕久久精品| 欧美日韩中文字幕综合视频| 亚洲国产精品一区二区久| 国外色69视频在线观看| 国产精品美女www| 国内精品久久久久久中文字幕| 欧美日韩精品在线视频| 久久久午夜视频| 精品国产欧美一区二区五十路| 亚洲精品日韩丝袜精品| 欧美中文在线视频| 国产精品视频大全| 在线看日韩欧美| 国产精品一区二区久久久久| 亚洲成人国产精品| 久久精品国产视频| 欧美床上激情在线观看| 日韩精品黄色网| 久久免费视频网站| 欧美日韩国产丝袜另类| 亚洲xxx视频|