nyoj 79 攔截導彈
阿新 • • 發佈:2017-06-20
[0 捕捉 %d include style 階段 正整數 等於 nbsp
攔截導彈
時間限制:3000 ms | 內存限制:65535 KB
難度:3
描述
某國為了防禦敵國的導彈襲擊,發展中一種導彈攔截系統。但是這種導彈攔截系統有一個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於等於前一發的高度。某天,雷達捕捉到敵國導彈來襲。由於該系統還在試用階段,所以只用一套系統,因此有可能不能攔截所有的導彈。
輸入
第一行輸入測試數據組數N(1<=N<=10)
接下來一行輸入這組測試數據共有多少個導彈m(1<=m<=20)
接下來行輸入導彈依次飛來的高度,所有高度值均是大於0的正整數。
輸出
輸出最多能攔截的導彈數目
樣例輸入
2
8
389 207 155 300 299 170 158 65
3
88 34 65
樣例輸出
6
2
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int s[25]; int dp[25]; int main() { int T; scanf("%d",&T); while(T--) { int n; memset(s,0,sizeof(s)); memset(dp,0,sizeof(dp)); scanf("%d",&n); for(int i=n;i>=1;i--) scanf("%d",&s[i]); int i,j,ans=0; dp[0]=1; for(i=1;i<=n;i++) { int Max=0; for(j=1;j<=i;j++) { if(s[i]>s[j]&&Max<dp[j]) Max=dp[j]; } dp[i]=Max+1; if(ans<dp[i]) ans=dp[i]; } printf("%d\n",ans); } return 0; }
nyoj 79 攔截導彈