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

  • 相关阅读:
    C# DictionaryHelper
    C# Autofac 的 BeanFactory
    正则替换
    java页面表格导出为Excel实现
    CentOS 7 下安装Nginx
    认识Java 虚拟机的架构
    06 查看网卡实时流量
    05 找出占用CPU、内存过高的进程
    04 一键查看服务器资源利用率
    03 批量创建100个用户并设置随机密码
  • 原文地址:https://www.cnblogs.com/hz-Rockstar/p/11731918.html
Copyright © 2011-2022 走看看