zoukankan      html  css  js  c++  java
  • 大学ACM第三周心得

    T1:P1127 词链(搜索)

    题意:如果单词 XX 的末字母与单词 YY 的首字母相同,则 XX 与 YY 可以相连成 X.YX.Y。(注意:XX、YY 之间是英文的句号 .)。例如,单词 dog 与单词 gopher,则 doggopher 可以相连成 dog.gopher

    思路:对于一条词链,去掉左端和右端字母,节点处两边字母都相同,就代表着:

    • 每个字母出现的次数一定是偶数次
    • 每个字母作为单词首位的次数一定等于作为末尾

    然后再加上左右端字母:

    • 若两个字母相同,依然符合以上性质,则找字典序最小的单词做词首。
    • 若不相同,则在左端的字母作为单词首位的次数比作为末尾的次数多1,找到符合这个条件的单词就可以了
    要注意的点:
    1. 先将单词按字典序排序

    2. 找到了为首的单词,从这个单词开始搜索,第一个搜到的后继单词一定是符合要求的单词里字典序最小的,直接返回


    T2:「BZOJ3631」[JLOI2014] 松鼠的新家(树上差分)

    题意:给个n点树,再给个节点的游览顺序,每经过一个节点(包括上一个游览的点到下一个游览的点路径上的点)就可以从这个节点拿走一个糖,问所有节点一开始要放几个糖。最后到达的节点不用糖。

    解法:是个树上差分的裸题,但是想用用树剖(因为刚现学完),然后还是挂了,因为树剖是把两个点的路径分成多条链,如果在树剖里做差分,边求lca边差分是最佳的,最后前缀和一下就好了


    然后现学的树剖:[https://www.cnblogs.com/71-111/p/13943126.html]

  • 相关阅读:
    将博客搬至CSDN
    js进制转换
    js千分位转换
    css让div水平垂直居中
    NPM与调试工具的使用
    Windows下Node.js开发环境搭建-合适的开发环境
    Node.js开发环境介绍-调试工具
    开发环境
    模拟实现call,apply,bind方法,以及三者区别
    观察者模式
  • 原文地址:https://www.cnblogs.com/71-111/p/13949260.html
Copyright © 2011-2022 走看看