/*
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...