zoukankan      html  css  js  c++  java
  • 「考试」省选50

    好可恶卡常卡死我了。

    T1
    我们点分治。
    对于每一个位置按照到点分中心的所有子树节点划分不同路径。
    二分答案(最小的使得大于其的路径个数为K的长度)。
    只需要给点分数据排序。
    双指针扫一扫再加一个求有多少个大于等于当前二分长度的路径。
    输出答案即可。

    T2
    维护一个线段树。
    维护区间与缀和,或缀和。
    考虑判断当前区间(and or)某一个数之后,其变化的位是否均相同。
    如果相同打标记下传,否则向下递归。
    查询直接查询区间最大值即可。

    T3
    比较有意思。
    我们求得一个质数使得:

    [Pequiv 1 (mod K) ]

    这样(K|phi)
    所以这样的一个质数(P)是存在(K)次单位根了。
    设其(K)次单位根为(g)
    那么有:

    [g^Kequiv 1 (mod P) ]

    对于每一个((i,j))随机出来一个(rd_{i,j})
    那么给每一个位置设一个权值(w_{i,j}=rd_{i,j}x^{a_{i,j}})
    当然如果这个位置没有利是,权值自然为0.
    这样我们每次代入一个(x=g^i)求行列式。
    对于(iin[0,K))我们求(K)次行列式,把值累加。
    那么对于一个合法排列(不含有(a_{i,j}=-1))(p)来说,设(sigma(p))为其逆序对个数。
    其对最终和的贡献即为:

    [W=(sumlimits_{j=0}^{K-1}g^{jsumlimits_{i=1}^{n}a_{i,p_i}})(-1)^{sigma(p)}prodlimits_{i=1}^{n}rd_{i,p_i} ]

    设:(S=sumlimits_{i=1}^{n}a_{i,p_i})
    那么当(Sequiv 0 (mod K))的时候。
    我们的(g^Sequiv 1 (mod P))
    前面那部分,如果我们的(Sequiv 0 (mod K))的话,值必然为(K)
    否则我们用等比数列求和公式:

    [frac{g^{KS}-1}{g^{S}-1} ]

    这样必然为0。
    然而如果求和为0的话,很大概率是不存在解。
    如果求和不为0的话,必然存在一个解。

    (题解锅的太厉害了吧。。。

  • 相关阅读:
    接口缓存--把接口放在redis数据库中,减少访问量
    使用vue和drf后台进行登录页面和注册页面(本文大概的疏通一下前后台是怎么交互的)
    vue导入css,js和放置html代码
    存储过程
    触发器
    视图
    pymysql模块使用
    权限管理
    多表数据查询
    单表数据查询
  • 原文地址:https://www.cnblogs.com/Lrefrain/p/12535070.html
Copyright © 2011-2022 走看看