• NOIP2020题解


    从哪里跌倒就在哪里站起。
    A:
    签到题
    考虑每个排水口对答案的贡献,可以dp求解。
    (f_i)表示从某个排水口到(i)的贡献。
    (i)的度数为(d),则(f_v+=frac{f_i}{d})
    要写分数类+高精度。
    然而我由于先乘后除所以被卡掉(30)分,离谱。
    有人不拓扑排序也是(60)就离谱。
    B:
    考虑预处理(f_{i,j})表示前缀(i)中有(j)个字符为奇数。
    f可以用前缀和求。
    (g_i)表示后缀(i...n)有多少个字符出现次数为奇数。
    枚举前缀(AB),凭借(f)就可以更新答案。
    枚举次数是调和级数。
    优化1:枚举时不用双哈希,使用kmp。
    加上这个优化我就过了吧。
    优化2:显然(AB)的出现次数可以二分。可以证明时间复杂度是(O(n))
    优化3:枚举的((AB)^i)的函数值只可能有2种。所以我们只需要做(2n)次树状数组查询即可求出答案。
    优化4:树状数组也是不必要的。考虑顺序扫描(AB)
    扫描后函数值只可能会变化(1),于是可以使用桶维护。
    在后缀更新时如果更新处的值小于等于函数值,则把答案++。
    当函数移动时加上/减去桶对应的值。
    C:
    考虑归并排序。
    D:

  • 相关阅读:
    dN/dS与分子进化常用软件
    samtools和bcftools使用说明
    变异检测VarScan软件使用说明
    线程可以共享进程里的哪些资源
    函数调用与系统调用的区别
    海量数据统计出现次数
    海量数据查找问题
    建立高并发模型需要考虑的点
    言简意赅的TIME_WAIT
    常用的TCP选项
  • 原文地址:https://www.cnblogs.com/ctmlpfs/p/14303880.html
Copyright © 2020-2023  润新知