hdu 1257最少拦截系统 动态规划
生活随笔
收集整理的這篇文章主要介紹了
hdu 1257最少拦截系统 动态规划
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最少攔截系統(tǒng)
Time Limit : 2000/1000ms (Java/Other)???Memory Limit : 65536/32768K (Java/Other)
怎么辦呢?多搞幾套系統(tǒng)唄!你說說倒蠻容易,成本呢?成本是個(gè)大問題啊.所以俺就到這里來求救了,請(qǐng)幫助計(jì)算一下最少需要多少套攔截系統(tǒng).
Input 輸入若干組數(shù)據(jù).每組數(shù)據(jù)包括:導(dǎo)彈總個(gè)數(shù)(正整數(shù)),導(dǎo)彈依此飛來的高度(雷達(dá)給出的高度數(shù)據(jù)是不大于30000的正整數(shù),用空格分隔)
Output 對(duì)應(yīng)每組數(shù)據(jù)輸出攔截所有導(dǎo)彈最少要配備多少套這種導(dǎo)彈攔截系統(tǒng).
Sample Input 8 389 207 155 300 299 170 158 65
Sample Output 2 解題思路 :由于炮彈的發(fā)射高度是遞減的,如果后面的導(dǎo)彈的高度大于前面的高度,就不能把后面的那顆導(dǎo)彈攔截,若想攔截,就要增加一個(gè)攔截系統(tǒng)。問題的實(shí)質(zhì)就是求出最長的連續(xù)遞增子序列的長度。 AC代碼: #include<stdio.h> int a[1000],d[1000]; int main() {int i,n,j,max;while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++){scanf("%d",&a[i]);d[i]=1;}for(i=1;i<n;i++)for(j=0;j<i;j++)if(a[i]>a[j]&&d[i]<d[j]+1)d[i]=d[j]+1;max=-1;for(i=0;i<n;i++)if(max<d[i])max=d[i];printf("%d\n",max);}return 0; }
總結(jié)
以上是生活随笔為你收集整理的hdu 1257最少拦截系统 动态规划的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx凭啥子并发数可以达到3w!
- 下一篇: 一口气说出 6种 @Transactio