• 「考试总结2021-04-07」进退


    A. A

    考虑枚举中位数,然后求一个最大的平均值

    那么显然是在左边和右边取相同数量的最大值

    发现这个东西是一个单峰函数,所以上个三分就能过了

    比较尴尬的是考场第一次写三分,没有判断 (f(lmid)=f(rmid)) 的情况,挂掉很可观的分数

    其实对于偶数的情况考虑右边的数的贡献就能证明必然相连,更进一步还能证明不存在偶数比奇数更优的情况

    B. B

    (dp[i][j][0/1]) 表示前 (i) 个数有 (j) 对冲突,最后一个数是不是构成冲突的方案数

    那么转移考虑新加入的数是不是构成一个新的冲突就能得到 (7) 个转移

    f[i+1][j][1]=add(f[i][j][1],f[i+1][j][1]);
    f[i+1][j][0]=add(f[i+1][j][0],f[i][j][0]*max(i-j-1,0ll)%mod);
    f[i+1][j][0]=add(f[i+1][j][0],f[i][j][1]*max(i-j,0ll)%mod);
    if(j<i){
        f[i+1][j+1][1]=add(f[i][j][0]*2%mod,f[i+1][j+1][1]);
        f[i+1][j+1][1]=add(f[i][j][1],f[i+1][j+1][1]);
    }
    if(j>=1){
        f[i+1][j-1][0]=add(f[i+1][j-1][0],f[i][j][0]*j%mod);
        f[i+1][j-1][0]=add(f[i+1][j-1][0],f[i][j][1]*(j-1)%mod);
    }
    

    C.C

    首先注意 (FFT) 预处理单位根的时候是 (complex){cos(pi/len*j),opt*sin(pi/len*j)};

    也就是把 (j) 放到里面

    不难写出来一个很多维的 (dp) ,每次枚举能新加入的数字来转移,最后再限制 (2,5) 做一次

    同时也可以把它压到 (2) 维,也就是取 (3,7,11,47) 的公倍数,最后除一下

    考虑有这样一个东西:(10^{138} equiv 1 mod (3 imes 7 imes 11 imes 13)),这个东西可以使用各种方法得到,比如阶和 (varphi)

    那么把 (dp) 式子写出其 (mathrm{OGF}) 就可以得到转移是一个循环卷积的形式

    那么可以预处理 (138) 位,然后多项式快速幂做,不够的部分可以暴力跑一下

  • 相关阅读:
    跨域抓取360搜索结果
    css的圣杯布局
    css的双飞翼布局
    C#WebBroswer控件的使用
    使用Chart控件进行实时监控
    GzipStream的简单使用压缩和解压
    poj 1611 The Suspects
    hdu 1856 More is better
    hdu 1232
    UvaOJ 10167
  • 原文地址:https://www.cnblogs.com/yspm/p/14628660.html
Copyright © 2020-2023  润新知