您的位置:首页 > 其它

Sicily 1448. Antimonotonicity

2013-10-01 18:38 369 查看
题目的意思跟 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 ;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: