模擬測試75

來填坑了......數組

T1:spa

  將$A$和$B$當作變量,那麼題意轉化爲是否存在$A$和$B$,使得$\frac{A}{a_i}+\frac{B}{b_i}$最小。排序

  解不等式$\frac{A}{a_i}+\frac{B}{b_i}<\frac{A}{a_j}+\frac{B}{b_j}$得:基礎

    $\frac{A}{B}<\frac{a_ia_j(b_i-b_j)}{b_ib_j(a_j-a_i)}$。變量

  不難看出只與$A$和$B$的比值有關。時間

  將$(\frac{1}{a_i},\frac{1}{b_i})$抽象成平面上的點,則$\frac{A}{a_i}+\frac{B}{b_i}=z$能夠當作一條直線。字典

  鑰匙$z$儘量小,就要維護一個左下凸包。樹形結構

  吧$a$和$b$數組排序,用單調棧儲存凸包上的點。數組排序

  時間複雜度$O(nlogn)$。

T2:

  能夠把每一個化學物質的鍵能做爲未知量代入,可是有特殊狀況,便可以在不知道全部未知量的具體數值的基礎上求得的答案。

  發現最終答案只與給定方程的焓變有關,將每一個方程所佔的百分比當作未知量,拼出最後方程便可。

  時間複雜度$O(n^3)$。

T3:

  撞車次數隨時間單調不減沒,因而能夠二分時間。

  將每一個人此時的位置算出,因爲每一個人都從靜止開始作勻加速運動,因此不相撞的條件爲相對位置不發生改變。

  將全部人按初始位置排序,問題轉化爲求最長上升子序列。

  考慮如何求字典序最小的方案。

  LIS的轉移爲樹形結構,動態維護已經創建出來的樹,發現字典需大小取決於lca如下,樹上倍增維護最小值進行比較便可。

  時間複雜度$O(nlogn)$。

相關文章
相關標籤/搜索