POJ 1952 最長下降子串行 方案數

2021-06-18 16:47:19 字數 661 閱讀 1148

求最長下降子串行 簡單 就是求方案數比較麻煩點 看了別人的解題報考才懂

也對最長**子串行的理解更深一步

#include#include#includeusing namespace std;

const int maxn = 5005;

int n;

int price[maxn],len[maxn],count[maxn]; //len[i]記錄到i最長下降序列數 count記錄方案數

int maxnum,max_count;

int main()

else if( ( len[j] + 1 ) == len[i] ) //下降序列數相同 方案數相加

count[i] += count[j];

}else if( price[j] == price[i]) //去重

}if( len[i] > maxnum ) //找出最長下降序列數

maxnum = len[i];

} max_count = 0;

for( int i=0; i < n; i ++ ) //統計方案數

printf("%d %d\n",maxnum,max_count);

} return 0;

}

POJ 1952(最長不下降子串行的個數)

求乙個序列的最長不下降子串行的長度,與個數 相同數列算1個 關鍵是如何判重。顯然如果之前有乙個尾數相同且長度相同的序列,哪麼後乙個包含前乙個所有可能的序列相同的序列,故將前乙個序列刪除 重複 program p1952 var n,i,j,ans longint a,len,f,path array...

POJ 1952(最長不下降子串行的個數)

求乙個序列的最長不下降子串行的長度,與個數 相同數列算1個 關鍵是如何判重。顯然如果之前有乙個尾數相同且長度相同的序列,哪麼後乙個包含前乙個所有可能的序列相同的序列,故將前乙個序列刪除 重複 program p1952 var n,i,j,ans longint a,len,f,path array...

最長不下降子串行

a1 t0 an a an 1 2 b an c d n 1 求該序列最長不下降子串行長度 n不是很大顯然可以暴力。n很大呢?那就不斷減迴圈節長度直至減到乙個閾值內,再暴力。正確性顯然,只要閾值不要設太小。include include include define fo i,a,b for i a...