19-11-14 - 最後に

これは夜の前に世界の終わりである場合には、

これが私の答えです。

#include <ビット/ STDC ++ H> 

名前空間STDを使用して、

INTメイン(){ 
    COUT << << ENDL "こんにちは、エンド。"; 
}

ZJ:

最後に、書き込み概要は消えません。

TL、暴力的なヒットは、その後、インクルージョン排除は、単にすることができることを見出し、それは$ \シータ(N \ログN)$です

T2は、検索ではなく、また気持ちが最小の点ではない持っていました。

T3は、(面白い)$ 1 $スコアリングアルゴリズムを作ったことはありません

しかし、私は長い時間T3のためだと思う......

遊びに困難なビットを剪定T2 ......

TJ:

T1

ウィルT1は、その後の書き込み。

まず、我々は2つのバイナリのグループに4分割を見つけることができます。

そして、そこに$ <A、B>、S_A <S_B $と$ <C、D>、S_C> S_D $

だから、フェンウィックツリーのメンテナンスと直接ライン上の日本の小さな数字の数より$ I $ $ $ S_I厳格前に計算。

しかし、問題がある、$、B、C、D $は異なっているし、我々はそれらを違法に計算しておく必要があります。

そして、そこに

  1. $(<I \と\ S_A <S_I、I、I、B> I \と\ S_B <S_I)$
  2. $(<I \と\ S_A <S_I、I、I、B <I \と\ S_B> S_I)$
  3. $(> I \と\ S_A <S_I、I、I、B> I \と\ S_B> S_I)$
  4. $(<I \と\ S_A> S_I、I、I、B> I \と\ S_B> S_I)$

4例、ライン上で計算され、包含と除外の配列と同じツリー!

// A 

の#include <アルゴリズム> 
書式#include <iostreamの> 
の#include <CStringの> 
の#include <cstdioを> 
に#define N 111111 
の#define LL長い長い

名前空間stdを使用。

int型NN、VN; 
INT ARR [N]、ヴァル[N]。
INTプレ[N]。
LLのbefs [N]、befb [N]のAFT [N]、[N] aftb。
LLはANS; 

インラインINT fvind(INT VA){ 
	戻りLOWER_BOUND(ヴァル+ 1、ヴァル+ VN + 1、VA)-Val。
} 
インラインINT lowbit(INT X){ 
	戻りX&( - X)。
} 
ボイド追加(INT POS、INT V){ 
	一方(POS <= VN + 10){ 
		プレ[POS] + = V。
		POS + = lowbit(POS)。
	} 
} 
int型クエリ(INT POS){ 
	int型RES = 0。
	一方(POS){
		RES + =プレ[POS]。
		POS-= lowbit(POS)。
	} 
	RESを返します。
} 
INT(){主
#ifndefのLOCAL 
	freopenは( "a.in"、 "R"、STDIN)。
	freopenは( "a.outの"、 "W"、STDOUT)。
#endifの
	scanf関数( "%のD"、&NN)。
	以下のために(INT iが= 1; I <= NN; I ++){ 
		scanf関数( "%dの"、ARR + I)。
		ヴァル[I] = ARR [I]。
	} 
	ソート(ヴァル+ 1、ヴァル+ NN + 1)。
	VN =ユニーク(ヴァル+ 1、ヴァル+ NN + 1)-Val-1。
	以下のために(INT iが= 1; I <= NN; I ++)
		ARR [I] = fvind(ARR [I])。

/ *のための(INT I = 1; I <= NN; I ++)
		COUT << ARR [I] <<」「。
	COUT << ENDLは、* / 

	のために(INT I = 1; I <= NN; I ++){ 
		befs [I] =クエリ(ARR [I] -1)。
		befb [I] = I-1クエリ(ARR [I])。
		([I]、1 ARR)を追加します。
	}
	memsetの(前、0、はsizeof PRE)。SUMB = 0;  
	ANS =スマ* SUMB。
	(INT I = NN; I> = 1; I - )のための{ 
		のAFT [I] =クエリ(ARR [I] -1)。
		aftb [I] = NN-Iクエリ(ARR [I])。
		([I]、1 ARR)を追加します。
	} 
/ * coutの<< "Befs:"; 
	以下のために(INT iが= 1; I <= NN; I ++)
		COUT << befs [I] <<」「。
	coutの<<てendl << "Befb:"; 
	以下のために(INT iが= 1; I <= NN; I ++)
		COUT << befb [I] <<」「。
	coutの<<てendl << "のAFT:"; 
	以下のために(INT iが= 1; I <= NN; I ++)
		COUT <<のAFT [I] <<」「。
	coutの<<てendl << "Aftb:"; 
	以下のために(INT iが= 1; I <= NN; iが++)
		COUT << aftb [I] <<」「。
	coutの<<てendl; 
* / 
	LLスマ= 0、SUMB = 0。
	(INTのためにI 1 =; I <= NN。
		I ++){ スマ+ = 1LL * befs [I]。
		SUMB + = 1LL *のAFT [I]。
	} 
	ため(INT I 1 =、iが<= NN; I ++){
		ans- = 1LL * befb [I] * aftb [i]は、
		ans- = 1LL * befs [I] *のAFT [i]は、
		ans- = 1LL * befs [I] * befb [i]は、
		ans- = 1LL *のAFT [I] * aftb [i]は、
	} 
	COUT << ANS << ENDL。
}

T2T3クッション、および構成していないことがあります。

 

"こんにちはCSP-S、こんにちはAFO"

 

おすすめ

転載: www.cnblogs.com/kalginamiemeng/p/Exam20191114.html