zoukankan      html  css  js  c++  java
  • 省选模拟37

    A. 奶酪

      这个东西做法应该很多。

      我的做法是,直径合并,在dfs序上处理出来前后缀的直径和两个端点,询问的时候直接合并两段前缀和后缀即可。

      换根dp也是可以的,然而要记录最大值,次大值,次次大值,所以就比较恶心。

      题解的做法是,根据删掉的这条边是否在直径上进行讨论,假如不在,那么一段的答案就是直径,另一段做简单树形dp。

      否则似乎是类似的做法?

    B. 走

      一眼可以发现对于第二个串的转移是单调的,第一个串的转移图用kmp可以简单预处理出来。

      所以现在的问题就是第一个串的转移图中的环应该怎么处理。

      发现数据范围很小,直接暴力高斯消元就行了。

    C. 机

      记几个东西:

      判断一个数是否是偶数可以用$(-1)^x$来判断。

      stein算法:处理很大数最大公约数的方法,就是每次将两个数中所有的2去掉,然后两个数都是奇数时,使用$gcd(x,y)=gcd(x-y,y)$,这样一定会再次出现2的幂次,一直消掉就可以了。复杂度和辗转相除是一样的,但是在需要高精度的时候由于不用取模效率很高。

      假如需要打表但是在打出来的表上效率很低的时候,可以考虑压一压数据,比如建出来一棵搜索树。

      加法转化为原根的乘法。

  • 相关阅读:
    关于Python3.7和Python3.6中元组类型数据内存存储问题
    PHP中的语法特点小结
    PHP中的魔术常量
    Python02期(北京)课程笔记索引
    初识python
    Django项目功能执行逻辑流程图之用户页面信息展示和添加
    Django中的Model模型
    浅谈web开发以及django的安装和入门
    对前面知识的重新理解
    8月26号
  • 原文地址:https://www.cnblogs.com/hzoi-cbx/p/12416424.html
Copyright © 2011-2022 走看看