cf1278C - DP

プリ情報の最初の期間の後、その後、あなたは答えを更新することができ、一度背面に正面から前半を横断

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
#define N 200005

整数nは、[N]。
マップ < int型int型 > 融点;

INT のmain(){
     int型 T; CIN >> T。
    一方、(t-- ){
        cinを >> N;
        mp.clear();
        以下のためにINT iが= 1 ; I <= 2 * N; I ++)CIN >> [I]。
        INT今= 0 ; MP [ 0 ] = 2 * N + 1 以下のためにINT iが= 2 * N; I> = N + 1 ; i-- ){
             場合([I] == 1)今++  now-- ;
            MP [今] = I;
        }
        
        int型 ANS = 0 ;
        もし(MP [ 0 ]!= 0  = 2 * N-MP [ 0 ] + 1  = 0 ;
        以下のためにINT iが= 1 ; I <= N; I ++ ){
             場合([I] == 1)今++  now-- ;
            もし(MP [-now]!= 0 
                ANS = MAX(ANS、I + 2 * N-MP [-NOW] + 1 )。
        }
        
        coutの << 2 * N-ANS << ' \ n個' ;
    }
} 

おすすめ

転載: www.cnblogs.com/zsben991126/p/12109317.html