zoukankan      html  css  js  c++  java
  • 清华集训 part1


    跳跳棋

    假设有 a < b, 那么可以变成 b < b + (b - a) 或 a - (b - a) < a, 也就是 b < 2b - a 或 2a - b < a。

    也就是说以 x 为中轴跳动 y 就会让 y 变成 2x - y。

    似乎很难, 但是题目说了不能跳过两个棋子, 这就大大限制了能玩出的花样。

    那么支持的操作只有:

    1. 中间的棋子跳成两边的
    2. 离中间棋子较近的跳成中间的

    发现缩小两边棋子距离的跳法只有一种, 这样, 整个状态空间可以看成一颗树, 这样, 可以通过判断初始状态和目标状态在树上的距离(不连通就是 infty)来寻找答案。

    首先跳到根很容易跳,这样就可以判断无解。

    然后发现可以在跳的过程中记录步数, 进一步发现可以快速跳指定的步数。

    然后就可以做了, 跳到相同深度然后二分 lca 的深度即可。

    提交记录

    Rmq Problem / mex

    查询的时候对于 [1,r] 的值域线段树, 叶节点记录的是每个数最后出现的位置, 挺妙的。

    提交记录

    模积和

    推式子 + 数论分块。

    代码年代久远,丑(

    提交记录

    串珠子

    比较经典的方法, 即 G = exp(F) → F = ln(G) 连通的方案数 = 所有方案数 - 不连通的方案数。

    不连通的方案数可以通过枚举点 1 所在连通块的大小来实现, 这就又分成了子问题。

    代码年代久远(

    提交记录

    小 Y 和二叉树

    ——字典序有天然的贪心性质

    显然序列中的第一个数是度数 (le 2) 的编号最小的那个点, 设其为 pos。

    分类讨论:

    1. pos 的度数是 1, 那么设 pos 唯一连着的点为 els, 那么 els 当 pos 的父亲的话, 第二个点就是 els(case 1), 反之 els 当 pos 的右儿子(case 2), 则第二个点是 els 的左儿子或 els。比对 case 1 和 case 2 的价值, 哪个小取哪个。case 1 的话, 相当于去掉 pos 之后再回到分类讨论;case 2 的话, 就是另一个问题,“根节点确定了,求字典序最小的中序遍历”, 这个很好搞。如果 case 1 和 case 2 价值相等的话, 即不论 case 1 还是 case 2, els 都是第一个点,这样 els 的度数是 2, 那么可以发现不论直接按 case 1 还是直接按 case 2 处理都是等效的。
    2. pos 的度数是 2, 那么设 pos 连着的两个点为 p,q,那么 els 必有右儿子, 比对下 p,q 当右儿子哪个价值大就行了, 这就又分割成两个子问题。不可能发生相等的情况。

    将最初的哪个 pos 作为根, 就可以很轻松地实现上述算法。

    提交记录

    奇数国

    又臭又长的题面真是文明发展的毒瘤 =_=|||

    首先这个不相冲等价于 gcd = 1, 那么题面可以被概括为:

    1. 单点修改
    2. 询问某个区间的数乘起来的 φ 值。

    询问的结果对 19961993 取模。

    这个看上去就是 log2 线段树维护质因数分解啊。

    然后这个模数是质数, 于是可以光维护区间乘积和质因子有没有出现过, 就是单 log 了。

    (把 φ 的公式记错了调了几分钟草

    提交记录

  • 相关阅读:
    java基础部分的一些有意思的东西。
    antdvue按需加载插件babelpluginimport报错
    阿超的烦恼 javaScript篇
    .NET E F(Entity Framework)框架 DataBase First 和 Code First 简单用法。
    JQuery获得input ID相同但是type不同的方法
    gridview的删除,修改,数据绑定处理
    jgGrid数据格式
    Cannot read configuration file due to insufficient permissions
    Invoke action which type of result is JsonResult on controller from view using Ajax or geJSon
    Entity model数据库连接
  • 原文地址:https://www.cnblogs.com/tztqwq/p/14514691.html
Copyright © 2011-2022 走看看