POJ 2533 簡單dp 最長上升子序列
要求:輸出一段序列a的最長上升子序列的長度。
方法:dp
1.這題有個二分的方法,但是我用暴力做的。
2.dp[i]表示以原序列中下標為i的元素結尾的子序列的最大長度。
dp[i] = max(dp[i] , dp[j] + 1) (j < i 且 a[j] < a[i])。
3.注意輸出的是最大的dp[i],而不是最後一個dp[i]!!!!!!
#include<stdio.h> #include<string.h> #include<queue> #include<algorithm> using namespace std; int main() { int i,j,n,ans; int a[1005]; int dp[1005]; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); ans = 0; for(i=0;i<n;i++) { dp[i]=1; for(j=0;j<i;j++) { if(a[j]<a[i]) { dp[i]=max(dp[i],dp[j]+1); } } ans = max(ans , dp[i]); } printf("%d\n",ans); }
相關推薦
POJ 2533 簡單dp 最長上升子序列
要求:輸出一段序列a的最長上升子序列的長度。 方法:dp 1.這題有個二分的方法,但是我用暴力做的。 2.dp[i]表示以原序列中下標為i的元素結尾的子序列的最大長度。 dp[i] = max(dp[i] , dp[j] + 1) (j < i 且 a
POJ 1458 簡單dp 最長公共子序列
要求:輸出最長公共子序列的長度 方法:dp裸題 1.狀態:dp[i][j]表示第一個序列的前i個字元和第二個序列的前j個字元的最長公共子序列的長度。 2.狀態轉移方程在程式碼中。 3.首要是程式碼規範化,然後才是找bug。 #include<stdio.h> #inc
HRBUST 2010【簡單dp+最長遞減子序列】
amp stdio.h 遞增 scan ace name 多少 scanf ring 題目:所謂二等隊形就是從大到小依次排列,即對於數列a,二等隊形為任意a【i】滿足:a【i】>a【i+1】。現在給出一個長度為n的數列,從中最少去除多少個數可使數列變成二等隊形數列。
poj1631 dp,最長上升子序列
題目描述: 給你兩列點,共2n個 對於1~n著n個數,每個數給定一個對應的數xi,表示左邊的點i與右邊的點xi相連,求問這些連線中,最大的不交叉的連線數量 可以觀察樣例 我們可以發現,滿足不交叉這一條件的必要條件是對於i<j,必有xi<xj,(否則,連線一定相交) 所
【HDU - 1025】Constructing Roads In JGShining's Kingdom(dp最長上升子序列模型 + 二分優化)
題幹: Constructing Roads In JGShining's Kingdom Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768
[bzoj3591][狀壓DP]最長上升子序列
Description 給出1~n的一個排列的一個最長上升子序列,求原排列可能的種類數。 Input 第一行一個整數n。 第二行一個整數k,表示最長上升子序列的長度。 第三行k個整數,表示這個最長
FatMouse's Speed (DP最長上升子序列變型)
FatMouse believes that the fatter a mouse is, the faster it runs. To disprove this, you want to take the data on a collection of mice and
hdu 1087 Super Jumping! Jumping! Jumping!(dp 最長上升子序列和)
Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. Maybe you are a good boy, and know little about this game,
POJ 3903 Stock Exchange 最長上升子序列入門題
end out exc con chang names ace 序列 const 題目鏈接:http://poj.org/problem?id=3903 最長上升子序列入門題。 算法時間復雜度 O(n*logn) 。 代碼: #include <iostream>
Longest Ordered Subsequence POJ - 2533 最長上升子序列dp
stream ems esp sub set sequence memset 序列 pan 題意:最長上升子序列nlogn寫法 1 #include<iostream> 2 #include<cstdio> 3 #include<cst
POJ 1836 Alignment(DP max(最長上升子序列 + 最長下降子序列))
mission weight ring limit problem stream [0 sin ++ Alignment Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 14486
poj 3616 Milking Time(dp,類似於最長上升子序列)
題意:給奶牛擠奶,共m次可以擠,給出每次開始擠奶的時間st,結束擠奶的時間ed,還有擠奶的量ef, 每次擠完奶要休息r時間,問最大擠奶量. 題解:此題靈感來自於最長上升子序列的做法 #include <iostream> #include <cstring>
【POJ - 2533】Longest Ordered Subsequence(四種方法解決最長上升子序列 含二分優化版本)
題幹: Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 41944 Acc
每日三題-Day5-A(POJ 2533 Longest Ordered Subsequence 最長上升子序列O(nlogn)解法)
Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 51451 Accepted: 22885 Description A numeric
最長上升子序列(dp)
tps ann test case std intro lar ont sta into 鏈接:https://www.nowcoder.com/questionTerminal/d83721575bd4418eae76c916483493de來源:牛客網廣場上站著一支隊伍
1134 最長上升子序列 (序列型 DP)
col 直接 般的 圖片 時間復雜度 方法 第一個 def 但是 思路: 由於一般的動態規劃時間復雜度是O(n^2)(哈哈哈哈 第一次用的就是這個!)用在這裏由於n最大為50000 所以會超時 到這裏我們可以用一個數組來動態維護這個最長上升的子序列,將你要輸入的子序列一個
【bzoj5161】最長上升子序列 狀壓dp+打表
-s 只需要 [] sca div limits pow 證明 AC 題目描述 現在有一個長度為n的隨機排列,求它的最長上升子序列長度的期望。 為了避免精度誤差,你只需要輸出答案模998244353的余數。 輸入 輸入只包含一個正整數n。N<=28 輸出
POJ 3903 Stock Exchange 【最長上升子序列】模板題
com ++ 特點 pri 解析 class span 表示 problem 題目鏈接:http://poj.org/problem?id=3903 轉載於:https://www.cnblogs.com/GodA/p/5180560.html 題目大意: 裸的DP最長
BZOJ3591 最長上升子序列(狀壓dp)
[] line 以及 char == 最長上升子序列 lis stdin lib 之前聽說過一種dp套dp的trick,大致是用另一個dp過程中用到的一些東西作為該dp的狀態。這個題有異曲同工之妙。 考慮求LIS時用到的單調隊列。設f[S]為所選取集合為S的方案數,
Super Jumping!Jumping!Jumping!(HDU_1087)(dp求最長上升子序列的和)
inf 自己 長度 int ans out clas urn class 傳送門:HDU_1087 題意:現在要玩一個跳棋類遊戲,有棋盤和棋子。從棋子st開始,跳到棋子en結束。跳動棋子的規則是下一個落腳的棋子的號碼必須要大於當前棋子的號碼。st的號是所有棋子中最小的,en