4.4地方選挙シミュレーションゲームラグランジュフェンウィックツリー+および除外を数えます。

アバター
アバター

最も厄介な何であるか、このような問題点を数えます...

検討する中央のn ^ 2logの前の段落暴力的な列挙2つのデジタルフェンウィックツリーの統計3番目の数字に延期バックリングの数です。

国境に対処することは困難であるため、発見されたどのような問題の数だけ列挙を考えてみましょう。

そして、リングの上に直接列挙ことがわかったが、3つの形のない境界問題123231312存在は、第二の数の列挙した後はありません。

統計での最初のフォームの良好な外観は、独自に比べて小さいどのように多くの数の左の前処理します。

そして第三の形態は、ときに列挙2の第2は、包含及び除外231 = XX1-321。312 = 3XX-321のこれら二つの形態を考慮考え出し検討することは困難です。

3XX良いの統計情報は、答えを得るためにO(nlogn)に同じ統計的手法上記XX1 321および123を発見しました。

const int MAXN=200010;
int n,T,m,top;ll ans=0;
int a[MAXN],c[MAXN];ll f[MAXN];
inline void add(int x,int y){while(x<=n){c[x]+=y;x+=x&(-x);}}
inline int ask(int x){int cnt=0;while(x){cnt+=c[x];x-=x&(-x);}return cnt;}
signed main()
{
	freopen("1.in","r",stdin);
	get(n);
	rep(1,n,i)
	{
		get(a[i]);
		f[i]=ask(a[i]-1);
		add(a[i],1);
	}
	rep(1,n,i)
	{
		ans+=f[i]*(n-i-(a[i]-1-f[i]));//123 左边比我小 右边比我大
		ans+=(a[i]-1-f[i])*(a[i]-1-f[i]-1)/2;//3XX
		ans+=(i-1-f[i])*(i-1-f[i]-1)/2;//XX1
		ans-=(i-1-f[i])*(a[i]-1-f[i])*2;//左边比我大 右边比我小
	}
	putl(ans);return 0;
}

おすすめ

転載: www.cnblogs.com/chdy/p/12632918.html