luogu P2709 灏廈鐨勮闂?鏈€绠€鍗曠殑鑾槦

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luogu P2709 灏廈鐨勮闂?鏈€绠€鍗曠殑鑾槦相关的知识,希望对你有一定的参考价值。

鏍囩锛?a href='http://www.mamicode.com/so/1/ext' title='ext'>ext   ora   algorithm   mat   oid   mes   Fix   return       

鍧楀唴鎸夊彸绔偣sort锛屽潡澶栨寜宸︾鐐箂ort

璇濊鎴戝垰寮€濮嬭繖涔堜慨鏀广€傘€傘€?/p>

inline void del(int i) {cnt-=(c[a[i]]*c[a[i]]),cnt+=(c[a[i]]-1)*(c[a[i]]-1),--c[a[i]];}
inline void ins(int i) {cnt-=(c[a[i]]*c[a[i]]),cnt+=(c[a[i]]+1)*(c[a[i]]+1),++c[a[i]];}

鍗佸垎鏆村姏锛熸病浜嬩笉褰卞搷澶嶆潅搴︺€傘€?/span>

鍚庢潵鐪嬮瑙e彂鐜板彲浠ユ敼鎴愯繖鏍?/p>

inline void del(int i) {--c[a[i]],cnt-=2*c[a[i]]+1;}
inline void ins(int i) {++c[a[i]],cnt+=2*c[a[i]]-1;}

鍗佸垎绠€缁冿紵鎴戞暟瀛﹀お鑿滀簡銆傘€傘€?/span>

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
#define R register int
using namespace std;
inline int g() {
    R ret=0,fix=1; register char ch; while(!isdigit(ch=getchar())) fix=ch==鈥?/span>-鈥?/span>?-1:fix;
    do ret=ret*10+(ch^48); while(isdigit(ch=getchar())); return ret*fix;
}
int n,m,k,T,l=1,r=0;
long long cnt=0,ans[50010];
int c[50010],a[50010];
struct seg {
    int l,r,rk;
    bool operator <(const seg& y)const{return (l-1)/T==(y.l-1)/T?r<y.r:l<y.l;}
}q[50010];
inline void del(int i) {--c[a[i]],cnt-=2*c[a[i]]+1;}
inline void ins(int i) {++c[a[i]],cnt+=2*c[a[i]]-1;}
signed main() {
    n=g(),m=g(),k=g(); T=1.2*sqrt(n);
    for(R i=1;i<=n;++i) a[i]=g();
    for(R i=1;i<=m;++i) q[i].l=g(),q[i].r=g(),q[i].rk=i;
    sort(q+1,q+m+1);
    for(R i=1;i<=m;++i) {
        while(l<q[i].l) del(l++);
        while(l>q[i].l) ins(--l);
        while(r<q[i].r) ins(++r);
        while(r>q[i].r) del(r--);
        ans[q[i].rk]=cnt;
    } for(R i=1;i<=m;++i) printf("%lld
",ans[i]);
}

2019.04.12

以上是关于luogu P2709 灏廈鐨勮闂?鏈€绠€鍗曠殑鑾槦的主要内容,如果未能解决你的问题,请参考以下文章

绗竴绔?Web MVC绠€浠?鈥斺€?SpringMVC

涓轰粈涔堥潰璇曞畼鍠滄闂?ZooKeeper 鍩烘湰鍘熺悊锛?/h1>

Linux缃戠粶鎶€鏈鐞嗗強杩涚▼绠$悊

Spring涓婃柊 灏忕绯诲垪

luogu P2709 小B的询问

luogu P2709 小B的询问