zoukankan      html  css  js  c++  java
  • 模拟83 题解

    A. 最大异或和

    异或是不进位加法。

    具有一个很好的性质:$a xor b=c$    $ ightarrow$     $c xor b=a$

    若所有点的异或和为$0$,那么显然平手。

    若异或和不为$0$,先手只要将最高位的$1$选到必胜。

    B. 简单的括号序列

    考虑暴力做这道题。

    那么枚举最后一个必选的左括号的位置,枚举括号的个数。

    预处理出左侧的左括号个数$lcnt_i$,右侧的右括号个数$rcnt_i$

    那么答案为$sum limits_{i=1}^{n} sum limits_{j=1}inom{lcnt_i-1}{j-1}inom{rcnt_{i+1}}{j}$。

    发现这个式子似乎有一丝像卷积式,然而是反着卷的。

    然而组合数可以直接把反向的卷积变为正向,于是可以将$n$个组合数相乘求和转化为单个组合数。

    C. 旅行计划

    对于$k$比较小的情况,可以通过预处理暴力跑。

    对于询问比较少的情况,可以倍增$floyd$(或者理解为$min-add$矩阵快速幂)。

    然而除去特殊性质就没办法了。

    或许想到了倍增,然而只要带$qn^2$必死,根本无法进行倍增的多次拼凑。

    所以正解是分块,避免了多次拼凑。

    只要处理出$100*k$ $1<=k<=100$步,由$i$到$j$的最优解。

    至少$k$步,由$i$到$j$的最优解。

    所以可以一步拼凑,做到$O(nq)$。

  • 相关阅读:
    bootstrap 超大屏幕(Jumbotron)
    Bootstrap历练实例:激活导航状态
    Bootstrap 徽章(Badges)
    Bootstrap历练实例:标签修饰
    Bootstrap 标签
    bootstrap 翻页的状态
    [uiautomator篇][10] uiautomator进阶
    [adb 学习篇] adb pull
    安装adb工包
    [python IO学习篇] 补充中文编码
  • 原文地址:https://www.cnblogs.com/skyh/p/11728974.html
Copyright © 2011-2022 走看看