zoukankan      html  css  js  c++  java
  • 模拟测试75

    来填坑了......

    T1:

      将$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)$。

  • 相关阅读:
    Sudoku POJ 2676 [dfs]
    a>b和(*a).b
    lowbit()操作
    Anniversary party HDU 1520树形dp
    Lifting the Stone HDU 1115 求多边形的重心
    Boolean Expressions POJ 2106 【递归】
    Shaolin HDU 4585 STL map||Treap树
    取石子游戏 HDU 1527 威佐夫游戏
    A Simple Problem with Integers POJ 3468 区间修改线段树lazy—tag大法
    社会性网络软件SNS 帮助你认识比尔盖茨 java程序员
  • 原文地址:https://www.cnblogs.com/hz-Rockstar/p/11731918.html
Copyright © 2011-2022 走看看