Codevs 1044 攔截導彈
阿新 • • 發佈:2017-10-03
names logs flask scrip 它的 tput app 能夠 log
1044 攔截導彈
1999年NOIP全國聯賽提高組
時間限制: 1 s 空間限制: 128000 KB 題目等級 : 黃金 Gold 題目描述 Description某國為了防禦敵國的導彈襲擊,發展出一種導彈攔截系統。但是這種導彈攔截系統有一個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的導彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的導彈。
輸入描述 Input Description
輸入導彈依次飛來的高度(雷達給出的高度數據是不大於30000的正整數)
輸出描述 Output Description
輸出這套系統最多能攔截多少導彈,如果要攔截所有導彈最少要配備多少套這種導彈攔截系統。
樣例輸入 Sample Input389 207 155 300 299 170 158 65
樣例輸出 Sample Output6
2
數據範圍及提示 Data Size & Hint導彈的高度<=30000,導彈個數<=20
題解:
#include<iostream> #include<algorithm> #include<cstdio> using namespacestd; int dp[20],p[20],c,s,dd[20]; int main(){ int a=0; while(scanf("%d",&p[a])!=EOF) ++a; for(int i=0;i<a;++i){ dp[i]=1; dd[i]=1; } for(int i=0;i<a;++i){ for (int j=i-1;j>=0;--j){ if(p[i]<=p[j]){ dp[i]=max(dp[i],dp[j]+1); } else{ dd[i]=max(dd[i],dd[j]+1); } } } for(int i=0;i<a;++i){ c=max(c,dp[i]); s=max(s,dd[i]); } cout<<c<<endl<<s; return 0; }
Codevs 1044 攔截導彈