題解:
今天學了個時間複雜度為o(nlogn)的lis模板,聽說這道題就是個模板題我就去做,然後過了。
下面是我學的部落格:
其中值得重點的是在d中二分查詢,找到第乙個比x小的數d[k],並d[k+1]=x,在這裡x<=d[k+1]一定成立.和求出來的d陣列並不是lis陣列,它只是儲存的對應長度lis的最小末尾。
#include
#include
#include
using
namespace
std;
int g[40007],a[40007],len;
int erfen(int x)
return l;
} int main()
}printf("%d\n",len);
}}
HDU 2298 三分 二分物理題 模板
題目 題意 二維面上給定目標座標和初速度,求在座標原點 0,0 發射出去能經過目標點的最小的角度。思路 寫出乙個高度關於角度的一元二次方程。看這個最大高度是否 y,判斷是否有解。這是乙個二次型凸函式。假如對稱軸為x,而且最大高度 y 即有解 0,x 這一段滿足二分單調性,找出函式值最接近y的角度即可...
hdu 1025 dp 二分 模板
題意 在一條河的兩邊各有n個位置,在這些位置之間建橋,要求所有橋之間不能交叉。現在告訴你所有可以建橋的位置,例如2,4,就是說河左邊的位置2可以與河右邊的位置4之間建橋,現在要求滿足要求的情況下最多可以建橋的個數。分析 想了好久發現是乙個最長上公升子串行問題,當時n比較大,所以一般的dp演算法不能解...
hdu 1025 二分法求LIS
題目給出兩個序列,兩個序列間有邊相連,我們要選出不交叉的邊,使得所選的邊最多 我們發現,如果我們對其中乙個序列從小到大排序的話,這個問題就變成了求另乙個序列的最長上公升子串行的問題。由於這個題目的資料比較大,一般的求最長上公升子串行的方法是n方的,顯然不能滿足題目的要求,我們建立乙個陣列g,g i ...