zoukankan      html  css  js  c++  java
  • 省选模拟31 题解

    A. Skip

    一眼决策单调性,但是感觉因为带个权值就不好处理了。

    实际上对权值开个线段树,然后直接在线段树上维护决策单调性就完事了。

    而且这个式子是一个显然的斜率优化 dp ,在权值线段树上维护凸包也挺套路的。

    感觉这题没做出来比较可惜,没有想到通过对权值开线段树,来实现权值的无关操作。

     

    B. String

    $80$ 分做法比较显然。

    求第 $k$ 大字典序,肯定要逐位确定。

    因为数据范围很小,所以状压然后 next_permutation 把每个字母填在对应位置就行了。

    考试最后 $20$ 分钟测了一个 $k=8,n=10^{18}$ ,然后看着一串 $ ext {abababa}$ 突然发现这个玩意在 $n$ 很大的时候可以优化。

    优化了一点发现跑的贼慢以为这不是正解就跑去打 T3 了。

    考后才想到优化的不彻底,导致一个 $k!$ 没剪掉,就很难受。

    C. Permutation

    考虑字典序相邻的集合。

    打表可知这样的集合存在第一个不同位,并且这一位上的数分别是 $x$ 和 $x+1$。

    接着观察发现后面也挺有规律的。所以推个简单的式子就完事了。

    一堆组合数*权值不好处理。

    考虑提出权值来,然后发现组合数是一个对角线。显然交换成一列就可以直接算了。

  • 相关阅读:
    《剑指offer》39题—数组中出现次数超过一半的数字
    常见排序算法实现
    剑指offer题目分类
    腾讯2019实习面试题
    Word2vec资料
    Hello World投票以太坊Dapp教程-Part1
    以太坊开发框架Truffle学习笔记
    linux查看端口进程占用情况
    重置fedora root密码
    docker挂载本地目录的方法总结
  • 原文地址:https://www.cnblogs.com/skyh/p/12368958.html
Copyright © 2011-2022 走看看