思路:就是排序後求最長遞增子串行,只不過多了乙個判斷(s下降)以及最後輸出下標,我們可以用乙個pre陣列來記錄路徑,最後遞迴輸出就行了。
1 #include2 #include3 #include4 #include5view codeusing
namespace
std;
6#define maxn 1010
7struct
micemice[maxn];
10int
n;11
intdp[maxn];
12int
pre[maxn];
1314
int cmp(const mice &p,const mice &q)
1920
void print(int
x)25
print(pre[x]);
26 printf("
%d\n
",mice[x].id);27}
2829
30int
main()44}
45 dp[i]=ans+1;46
}47 ans=0,ed=-1;48
for(int i=1;i<=n;i++)50}
51 printf("
%d\n
",ans);
52print(ed);
53return0;
54 }
hdu1160簡單dp最長下降子串行
簡單dp,要記錄順序 解 先排序,然後是乙個最長下降子串行 中間需記錄順序 dp i max dp i dp j 1 include include include define n 1100 w,s代表重量和速度,index記錄原來輸入時的順序下標,pre指向排序後的上乙個下標,answer記錄排...
hdu1160簡單dp最長下降子串行
簡單dp,要記錄順序 解 先排序,然後是乙個最長下降子串行 中間需記錄順序 dp i max dp i dp j 1 include include include define n 1100 w,s代表重量和速度,index記錄原來輸入時的順序下標,pre指向排序後的上乙個下標,answer記錄排...
最長遞增子串行
這是微軟實習生筆試遇到的,題意 求乙個陣列中最長遞增子串行的長度。要求選擇該題最好演算法的時間複雜度和空間複雜度。答案 時間複雜度o nlgn 空間複雜度o n 這題明顯用動態規劃來解。假設在目標陣列array 的前i個元素中,以array i 元素為最大元素的遞增子串行的長度是lis i 那麼 遞...