Sicily 1448. Antimonotonicity

題目的意思跟 Missile 是一樣的(見上篇),數據量變大而已。 A之。

代碼:


#include <cstdio>
#include <queue>
using namespace std ;
#define maxn 30009
#define max(a,b) a>b?a:b 

int t,n;
int dp[maxn] , a[maxn]  ;

int main () {
    scanf ( "%d" , &t ) ;
    while ( t-- ) {
        scanf ( "%d" , &n ) ;
    //  a[0] = -1023456789 ;
        for ( int i = 1 ; i <= n ; ++i ) scanf ( "%d" , &a[i] ) ;
        dp[1] = 1 ;     // '1' means an 'odd' missile
        
        for ( int i = 2 ; i <= n ; ++i ) {
            dp[i] = dp[i-1] ;
            if ( a[i] > a[i-1] ) {
                if ( dp[i-1] % 2 == 0 ) ++dp[i] ;
            }
            else if ( a[i] < a[i-1] ) {
                if ( dp[i-1] % 2 == 1 ) ++dp[i] ;
            }
        }
        int ans = 0 ;
    //  for ( int i = 1; i <= n ; ++i ) printf ( "%d " , dp[i][0] );
    //  printf ( "\n" ) ;
    //  for ( int i = 1 ; i <= n ; ++i ) printf ( "%d " , dp[i][1] ) ;
        for ( int i = 1 ; i <= n ; ++i ) {
            ans = max ( ans , dp[i] ) ;
        }
        printf ( "%d\n" , ans ) ;
    }
    //system ( "pause" ) ;
    return 0 ;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章