• 水题练习 1


    做题笔记 1

    hzwer 数据结构杂题选讲(14/16)

    偷了一个题表来做,当做康复训练了23333

    代码在这里

    【2018.7.3】

    1. CF140C 贪心、排序
    2. CF519B 离散化 / 排序
    3. CF650A 排序 (注意比较函数写法不好会导致sort死掉)
    4. CF466C 裸一维偏序
    5. CHSEQ22 差分、并查集 类似线性空间
    6. CF460C 二分答案、贪心

    【2018.7.4】

    1. CF212D.Cutting a Fence

      单调栈处理(a_i)作为最小值的范围延伸长度记为(l_i,r_i)

      发现性质,对每个(a_i)讨论对长度k区间的最小值和的贡献

      贡献是(a_i * min(l_i+1, r_i+1, k, l_i+r_i+2-k))

      然后发现有区间加常数和区间加等差数列两种操作,二次差分

      PS:1.注意讨论

      ​ 2.iostream真是慢,要std::ios::sync_with_stdio(false)才行

    2. CF459D

      裸二维偏序,预处理 + 树状数组,用后缀和bit也可以

    3. CF528A.Class Carving

      答案就是最大长*最大宽

      变成一维问题,加入点、求当前相邻点最大差值

      平衡树处理线段问题,插入、找前驱后继,可以用set

      再用个map或者multiset来做删除、插入、求最大值,map竟然更快2333

      set/map小笔记:内部是平衡树,用<定义的; 迭代器可以++ —, insert返回pair(迭代器,bool),multi的话返回迭代器.

    4. CF633C.Spy Syndrome 2

      classical的dp,(f_i)表示拼出s[1,i]上一步用了哪个单词,枚举单词长度来转移,复杂度O(n*1000)

      然后我的哈希一直冲突冲突冲突........于是写了trie

      单词建trie,对主串每一位都跑1000长度

    【2018.7.5】

    1. CF339D

      线段树,单点修改,查询根 2333

    2. CF527D

      classical 区间覆盖不重叠贪心

    3. P3043 [USACO12JAN]Bovine Alliance

      树的贡献是n,一个环的贡献是2,有其他的就无解

      并查集维护

    4. [CF718D. Andrew and Chemistry](D. Andrew and Chemistry)

      树的同构 自底向上哈希,对每个点,孩子节点哈希值排序再哈希起来构成自己的哈希值

      对于本题,若u、v加一个新点后同构,则u、v完全等价,u、v分别为根时哈希值相等

      加上记忆化后复杂度分析:因为度数<=4,所以对于一个点不同的哈希值最多4种

      因为哈希冲突留下了心里阴影,于是学了hzwer的一个技巧,直接给vector分配哈希值(也是利用了度数小)

  • 相关阅读:
    AIX6.1 线程模型说明
    多线程专题之线程死锁原因之谜
    多线程执行顺序诡异现象谈,你不知道的pthread_create
    SOA体系结构基础培训教程-规范标准篇
    C# AES要解密的数据的长度无效
    winform命名规范
    winform 打开一个窗体,关闭一个窗体
    VS2017专业版和企业版激活密钥
    AES五种加密模式
    c#POST请求php接口
  • 原文地址:https://www.cnblogs.com/candy99/p/9269560.html
Copyright © 2020-2023  润新知