hdu1025 超經典最長上公升子序問題

2021-07-07 06:06:15 字數 793 閱讀 8537

/*

2015.11.16

1025.最長上公升自序問題

n(1 ≤ n ≤ 500,000)

sample input

21 2

2 13

1 22 3

3 1sample output

case 1:

my king, at most 1 road can be built.

case 2:

my king, at most 2 roads can be built.

*/#include #include #include #include #include #include const int max = 500005;

const int inf = 5000000;

using namespace std;

int arr[max];

int solve[max];

int solveq(int n)

for(int i=1; i<=n; i++)

for(int i=1; i<=n; i++)

return lower_bound(solve, solve+n,inf) - solve;

}int main()else

}return 0;}/*

具體解體思路見挑戰程式設計競賽中p65頁,很經典。

另,該題有坑。

1.如果結果是1,則單詞road應為單數,反之為複數。

2.一句話結束後有兩個回車。

*/

hdu1025 最長上公升子串行

題目大意 2n個村莊,n個富有,n個貧窮,貧窮的需要從富有村莊進口東西,也就是說需要建一條路,一直編號都是從1 n,問最多可以減多少條路,滿足貧窮村莊編號大的則相連的富有的編號也大。思路 最長上公升子串行問題。g i 表示序列長度為i的最小村莊編號,dp i 表示第i個村莊為最後乙個村莊時總共有多少...

hdu 1025 最長上公升子串行 排序

因為題目給出不能交叉,一條邊的兩個點乙個看做下標,乙個看做值,那麼就是 i j,then a i a j 所以滿足上公升不降子串行,求建路條數最多,其實就是最長上公升子串行 ac 如下 採用的是nlogn的二分法模板求取最長上公升子串行模板及講解鏈結 include include include ...

HDU 1025 最長上公升子串行nlogn

剛開始題目理解錯了,第乙個數字是a陣列下標,第二個是陣列的值,nlogn演算法寫法用到了二分查詢 還有這題輸出很坑,乙個道路是是road,兩個以上是roads include include include include include include include include includ...