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

    A. x

    不妨考虑每一个质因子。

    那么拥有这个质因子的所有数都应当被分入一个集合中。

    而不拥有这个质因子的数可以有两种选择。

    将每个质因子的情况综合起来,用并查集维护一下联通块数量,

    答案就是$2^{cnt}-2$

    B. y

    暴力dp的设计是简单的,显然可以使用bitset优化一下这个dp,然后改变一下方式卡卡常似乎能A?

    很显然01串的状态数随着d的增长是指数级的,转移越来越困难。

    不妨使用meet in the middle思想,

    将暴力的dp20位,改为只dp10位。

    枚举链接点将两个状态合并。

    C. z

    正解的思路大概是将询问离线排序。

    考虑到一些要求是无用的:

    如果$x_i$被夹在$x_{i-1}$和$x_{i+1}$中间,那么点i是无用的。

    如果在当前询问下,线段在覆盖$x_i$的同时已经可以直接覆盖$x_{i+1}$,那么也有点是无用的。

    如果合并了所有无用的点,那么答案对于长度一定可以表示为一次函数的形式。

    所以用小根堆不断合并无用的点,维护一次函数。

    然而似乎很难打,打不出来

  • 相关阅读:
    【luogu4719】动态DP模板 [动态DP]
    【2019.9.22】
    [JSOI2010]连通数[tarjan缩点]
    【2019.9.16】Za
    【2019.9.18】Za
    [USACO14OPEN]GPS的决斗Dueling GPS's [最短路]
    【CF891C】Envy [最小生成树]
    【2019.9.17】Za
    【2019.9.17】
    【luogu3403】跳楼机 [同余最短路]
  • 原文地址:https://www.cnblogs.com/skyh/p/11610125.html
Copyright © 2011-2022 走看看