[LUOGU] P5149会議の席

ポータル

ずっと以前の質問をし、いくつかのポットは、霊に突然、今日、そこに改訂されていませんさ

それから

修理中。

おそらく、元のシーケンス番号、及びその後のパスを逆にしようと、第二のシーケンス番号に投入(本明細書ツリーアレイで見つけます)。

そして、名前の存在の問題について---->マップ

 

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 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/3soon/p/11530372.html