ずっと以前の質問をし、いくつかのポットは、霊に突然、今日、そこに改訂されていませんさ
それから
修理中。。。。。。
おそらく、元のシーケンス番号、及びその後のパスを逆にしようと、第二のシーケンス番号に投入(本明細書ツリーアレイで見つけます)。
そして、名前の存在の問題について---->マップ
1つの#include <ビット/ STDC ++ H> 2 使用して 名前空間STDを、 3つ の#define再登録 4 の#define LL長い長い 5 の#define DBダブル 6 の#defineを(X、B)用の場合(再int型X = A; X <= Bであり; x ++) 7 の#define FOR2(X、 、B)(RE INT X = Aについて、X> = B; x--) 8 の#define X <= B; X ++)LFor(X、a、b)は(再LL X = Aの 9 の#define LFor2 (X、B)のための(再LL X =; X> = B; x--) 10個 の#define ABS(X)((X> 0)は、x:-x) 11地図< ストリング、LL> TCH; 12 INT N。 13の チャー S [ 100005 ] [ 7 ]。 14 LLのP [ 100005 ]。 15 LLのF [ 100005 ]。 16 LLのC [ 500005 ]。 17の LL ANS; 18 構造体PP 19 { 20 LLのVal、POS。 21 } [ 100005 ]。 22インラインLL lowbit(LL X){ 戻り X&( - X);} 23インラインブール CMP(PPのX、PPのY){ 戻り x.val == y.val?x.pos> y.pos:x.val> y.val;} 24 LLクエリ(LL X) 25 { 26 LL和= 0 。 27 一方(X> 0 ) 28 { 29 和+ = C [X]。 30 X- = lowbit(X)。 31 } 32 リターン和。 33 } 34 空隙更新(LL X) 35 { 36 ながら(X <= N) 37 { 38 C [X] + = 1 ; 39 X + = lowbit(X)。 40 } 41 } 42 43 のint main()の 44 { 45 のscanf(" %d個"、&N) 46 INT TOT = 0 。 47 について(I、1 、N) 48 { 49 のscanf(" %sの" 、S [I])。 50 TCH [S [I] = ++ TOT。 51 } 52 について(I、1 、N) 53 { 54 のscanf(" %sの" 、S [I])。 55 [I] .val = TCH [S [I]]。 56 [i]は.POS = I。 57 } 58 ソート(A + 1、A + N + 1 、CMP)。 59の ANS = 0 。 60 (Iについて1 、N) 61 { 62 更新([I] .POS)。 63の ANS + =クエリ([I] .pos- 1 )。 64 } 65 のprintf(" %のLLD " 、ANS)。 66 リターン 0 ; 67 }