1. 程式人生 > >【例題】【動規(最長XX子序列)】NKOJ 1004 攔截導彈

【例題】【動規(最長XX子序列)】NKOJ 1004 攔截導彈

NKOJ 1004 攔截導彈
時間限制 : 1000 MS 空間限制 : 65536 KB

問題描述
某國為了防禦敵國的導彈襲擊,發展出一種導彈攔截系統。但是這種導彈攔截系統有一個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的導彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的導彈。
輸入導彈依次飛來的高度(雷達給出的高度資料是不大於30000的正整數),計算這套系統最多能攔截多少導彈,如果要攔截所有導彈最少要配備多少套這種導彈攔截系統。

輸入格式
第一行,一個整數n,表示有n枚導彈飛來(n<=500)。
第二行,若干個整數,表示導彈依次飛來的高度

輸出格式
兩行
第一行,一個整數,表示最多能攔截的導彈數
第二行,一個整數,表示要攔截所有導彈最少要配備的系統數

樣例輸入
8
389 207 155 300 299 170 158 65

樣例輸出
6
2

來源 NOIP1999

思路:
顯然,第一問求最長不下降子序列。
對於第二問,當一套系統攔截了導彈i,若i後有導彈高度高於i,則需要增加一套系統,所以第二問即求最長上升子序列。

程式碼:

#include<cstdio>
using namespace std;

int n,a[502],f[502],g[502],ansf=-10e7,ansg=-10e7
; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); f[i]=1; g[i]=1; } for(int i=n;i>=1;i--) { for(int j=i+1;j<=n;j++) { if(a[i]>=a[j]&&f[i]<f[j]+1) f[i]=f[j]+1; if
(a[i]<a[j]&&g[i]<g[j]+1) g[i]=g[j]+1; if(ansf<f[i]) ansf=f[i]; if(ansg<g[i]) ansg=g[i]; } } printf("%d\n%d",ansf,ansg); }

相關推薦

例題XX序列NKOJ 1004 攔截導彈

NKOJ 1004 攔截導彈 時間限制 : 1000 MS 空間限制 : 65536 KB 問題描述 某國為了防禦敵國的導彈襲擊,發展出一種導彈攔截系統。但是這種導彈攔截系統有一個缺陷

ZOJ1108FatMouse's Speed下降序列

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1108 FatMouse's Speed Time Limit: 2 Seconds      Memo

dp優化LIS上升序列長度的nlogn演算法

這道題第一反應就想到了 [CEOI96]渡輪問題 就是一個非常裸的求最長上升子序列的長度,還不要方案,非常的水。然而,常規的dp複雜度是 O(n^2) ,這道題會愉快地TLE,所以要進行nlogn級別的優化。 //O(n^2) TLE #include

LIS上升序列問題的三種求解方法以及一些例題

摘要 本篇部落格介紹了求LIS的三種方法,分別是O(n^2)的DP,O(nlogn)的二分+貪心法,以及O(nlogn)的樹狀陣列優化的DP,後面給出了5道LIS的例題。 LIS的定義 一個數的序列bi,當b1 < b2 < … <

上升序列

Problem Description 一個數的序列bi,當b1 < b2 < ... < bS的時候,我們稱這個序列是上升的。對於給定的一個序列(a1, a2, ..., aN),我們可以得到一些上升的子序列(ai1, ai2, ..., aiK),這

HDU 1513 Palindrome:LCS公共序列or 記憶化搜索

ble urn size rom str 個數 blog using reverse 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1513 題意:   給你一個字符串s,你可以在s中的任意位置添加任意字符,問你將s變成一個回

POJ 1458 - Common Subsequence公共序列 題解

void 方式 mem strong 輸出 inline ron eof init 此文為博主原創題解,轉載時請通知博主,並把原文鏈接放在正文醒目位置。 題目鏈接:http://poj.org/problem?id=1458 題目大意: 有若幹組數據,每組給出兩個字符

HDU1257 最少攔截系統 —— 貪心 or LIS上升序列

ret pre key ear out hide 裏來 程序 http 題目鏈接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1257 最少攔截系統 Time Limit: 2000/1000 MS (Java/Oth

LCS公共序列

rdquo 工作 dna abc sub 動態規劃 != 給定 似的   這個問題很有意思,在生物應用中,經常需要比較兩個(或多個)不同生物體的DNA片段。例如,某種生物的DNA可能為S1 = ACCGGTCGAGTGCGCGGAAGCCGGCCGAA,S2 = GTCGT

小樂樂匹配字串 公共序列

連結:https://ac.nowcoder.com/acm/contest/301/E 來源:牛客網   小樂樂匹配字串 時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 32768K,其他語言65536K 64bit IO Format: %lld 題目描述

LeetCode題解:longest-increasing-subsequence遞增序列

題目描述 Example: Input: [10,9,2,5,3,7,101,18] Output: 4 Explanation: The longest increasing subsequence is [2,3,7,101], the length is 4. Not

SDNUOJ 1292 動態規劃之LDS下降序列

Description 昨天是平安夜,聖誕老人從房頂上的煙囪裡爬到小朋友床邊把禮物送給夢鄉中的小朋友,但是今年的聖誕老人是處女座的,他有很嚴重的強迫症,他從一條街的一端開始,每次送禮物進的煙囪都不能比之前進的煙囪高,而且他還想要送出最多的禮物。 Input 輸入資料只有一行,該行包含若干個資

學習筆記--NLP文字相似度之LCS公共序列

最長公共子序列 一個序列S任意刪除若干個字元得到的新序列T,則T叫做S的子序列 兩個序列X和Y的公共子序列中,長度最長的那個,定義為X和Y的最長公共子序列  例如:      --字串12455與245576的最長公共子序列為2455      --字串acd

LCS(longest common subsequence)公共序列演算法模板

看了幾分寫的相當好的部落格: 下面內容來轉載自上面文章 問題描述 什麼是最長公共子序列呢?好比一個數列 S,如果分別是兩個或多個已知數列的子序列,且是所有符合此條件序列中最長的,則S 稱為已知序列的最長公共子序列。     舉個例子,如:有兩條

LCS公共序列問題

例題見挑戰程式設計競賽P56 解釋:子序列是從原序列中按順序(可以跳著)抽取出來的,序列是不連續的,這是其和子串最大的區別; 我們可以定義dp陣列為dp[i][j],表示的是s1-si和t1-ti對應的最長公共子序列長度 狀態轉移方程的話我們分為s[i],t[i]相同和s[i],t[i]不同時的情況

uva 10635上升序列

正是太蠢了,我做這道題居然做了幾天 一道經典的LCS,但也可以轉化成LIS 將A中的資料重新編排成{1,2,3,....},然後將B中的元素與A一一對應,如果B中的元素在A中沒有出現,就直接刪除。

HDU 5256 序列變換上升序列

Problem Description 我們有一個數列A1,A2…An,你現在要求修改數量最少的元素,使得這個數列嚴格遞增。其中無論是修改前還是修改後,每個元素都必須是整數。 請輸出最少需要修改多少個元素。 Input 第一行輸入一個T(1≤T≤10),

POJ 1458公共序列

Time Limit: 1000MS Memory Limit: 10000K Description A subsequence of a given sequence is the given sequence with some elemen

HDU 1159:Common Subsequence公共序列

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 23108    Accepted Submission(s

POJ 2533 Longest Ordered Subsequence遞增序列

題目:DescriptionA numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeric sequence ( a1,