zoukankan      html  css  js  c++  java
  • 2018.3.12校内互测总结-生成函数-bitset-二次剩余

    这套题是同机房dalao Easy 出的,质量还是挺高的~

    T1.a

    题目大意:

    定义运算$r(n,S)$为满足$s_1 in S,s_2 in S,s_1 eq s_2,s_1+s_2=n$的有序对$s_1,s_2$的数量

    将集合$S_n={0 cdots n}$划分成两个集合$S_a,S_b$,使得对于任意的$a(1 leq a leq n)$,均有$r(a,S_a)=r(b,S_b)$。

    $3 leq n leq 10^5$。

    题解:

    作为一条咸鱼,当时咱用$O(n^2)$暴力打了个表,然后把表差分后用char压缩了一下,把代码长度压到了12kb,然后就过了......

    这道题事实上是一道数学竞赛组友情赞助的构造题,然而从机房dalao Demerzel那里get到了一个很好的方法:

    设$S_a$的生成函数为$A(x)$,$S_b$的生成函数为$B(x)$,某项的系数为$1$代表这个数在当前生成函数内。

    那么现在得到了一个方程组:

    已知

    $$A(x)+B(x)=frac{x^{n+1}-1}{x-1}$$

    求$A(x)$,$B(x)$满足

    $$A2(x)-A(x2) equiv B2(x)-B(x2) pmod{ x^{n+1}}$$

    考虑到是在$mod x^{n+1}$意义下运算,那么事实上:

    $$A(x)+B(x) equiv frac{1}{1-x} pmod{x^{n+1}}$$

    然后对第二条方程进行转化:

    $$A2(x)-B2(x) equiv A(x2)-B(x2)$$

    $$(A-B)(x)(A+B)(x) equiv (A-B)(x^2)$$

    考虑令$C(x)=(A-B)(x)$

    那么$C(x)$的每一项系数均为$pm 1$,$+1$为在$S_a$中,否则在$S_b$中。

    带入第一条方程的结果:

    $$frac{1}{1-x}C(x) equiv C(x^2)$$

    $$C(x) equiv C(x2)-xC(x2)$$

    考虑到$C(x2)$即$C(x)$所有系数的下标*2的结果,同时$xC(x2)$为$C(x^2)$所有系数的下标$+1$的结果,那么令$C_i$为$C(x)$在次数为$i$的一项上的系数,那么这个式子写成竖式会是这样的:

       C0 0  C1 0  C2
    -  0  C0 0  C1 0
    ------------------  ......
       C0 C1 C2 C3 C4
    

    观察这个竖式,由于已知$C_0=1$,那么现在咱们可以递推解出每一项了。

    复杂度$O(n)$。虽然都是基本操作但还是很巧妙的。

    T2.b

    题目大意:

    在一个三维空间内,实现加点、求指定空间内点的个数两个操作。

    操作数$n$满足$1 leq n leq 5*10^4$。

    题解:

    会写KD-Tree的博主由于太久没写过,选择了做一条咸鱼,写了CDQ分治套树套树_(:з」∠)_

    然而事实上有一种$O(frac{n^2}{omega})$的神奇做法:

    考虑对每个询问点维护一个bitset,每一位按时间顺序从前到后依次代表一个点。

    初始比当前点加入时间早的所有点的位置上均为$1$,其余位置为$0$。

    依次操作每一维,对于每一维,同样开一个bitset,初始全$0$。

    将所有节点按这一维坐标的大小排序,并按顺序加入每个点,若是询问则在对应的答案bitset上and当前维护的bitset。

    最后每一个询问点的bitset上的count便是对应点的偏序,容斥一下便可得到答案~

    实际时间效率完虐除了三维KD-Tree外的所有方法,包括CDQ套CDQ、CDQ套二维KD-Tree等。

    T3.c

    题目大意:

    给出$c$和质数$m$,求方程$x^2-c equiv 0 pmod{m}$的解。

    题解:

    裸二次剩余。

    然而咱不会_(:з」∠)_

    这有一篇非常好的博客,讲的很清楚:a_crazy_czy dalao 的博客

    然而还是不会写,留坑待填_(:з」∠)_

  • 相关阅读:
    7.12Java+TestNG环境搭建
    7.15Java之调用API接口传表单获取返回信息
    7.12理解Cookie与token
    7.13一次完整的Http请求过程(3)
    7.13一次完整的Http请求过程(2)
    7.13一次完整的Http请求过程
    PostgreSql安装(win 2003 下)
    实用工具(渐变更新中)
    .net Ajax系列(2)调用多Web Service
    .net Ajax系列(1)调用Web Service
  • 原文地址:https://www.cnblogs.com/zltttt/p/8553029.html
Copyright © 2011-2022 走看看