zoukankan      html  css  js  c++  java
  • qbzt2020五一DAY1T1集合——题解

     

     题解:

      首先考虑如何求出一个集合的优美值:

        可以先将集合的元素从小到大排序,顺序扫描一遍。假设现在的优美值为t,即扫到当前位置最多可以凑出[1,t],那么对于下一个数x:
          如果 x<=t+1,那么这个数加入后可以凑出[1,t+x],答案t=t+x;
          否则能够凑出的部分还是[1,t],答案不变,且不会再变了,退出扫描;
      但现在的情况是,要从另一个集合中拿k个数加入当前集合,再求出当前集合的优美值。可以先求出另一个集合的数加入前的当前集合的优美值t,然后顺序对另一个集合顺序扫一遍(所有集合读入后都要先排好序)、建一个栈,将从另一集合中找到的满足x<=t+1的x放入栈中直到不满足,那么栈顶元素就是最适合放进第一个集合的值。更新t,取出栈顶后继续找,直到放进第一个集合k个值,或是栈空且没有x能满足x<=t+1为止。

    复杂度:O(Tm)。

  • 相关阅读:
    PostgreSQL主从流复制部署
    MySQL集群主从复制搭建
    zabbix修改支持中文主机名
    BGP总结(三)
    BGP总结(二)
    BGP总结(一)
    VXLAN配置实例(华为)
    VXLAN理论解析
    飞塔创建IPSec
    关于SANGFOR AC记录上网记录
  • 原文地址:https://www.cnblogs.com/InductiveSorting-QYF/p/12819547.html
Copyright © 2011-2022 走看看