关于思路

  • 因为是判断多点是否 都在区间内出现 ,所以只需记录 最前和最后 两点 (可使用 multiset)
  • 因为是路径 异或和 ,所以可以使用 差分
  • 因为是完全图连边,所以使用优化建图
  • 因为是环上路径,所以可以容斥翻转路径长度
    eg: 在长度为 \(w\)\(1->2->3->4->5->1\) 的环中,一条跨过 \(1\) 的长度为 \(x\) 路径 \(4->5->1->2\) 可以翻转为 \(2->3->4\) 长度为 \(w-x\) 的路径
  • 因为两数互质且可任取倍数,所以可以用裴蜀定理(exgcd)将两数之和化为 \(1\)
  • 因为是求两整数最小异或值,所以可以按大小顺序只取相邻计算贡献
    注: 可网络搜最小异或对以获取证明
  • 因为是异或,所以可以 01 翻转后将求最大最小互换(其实意义不大,可能有时助于思考)
  • 因为是完全图连边,所以可以优化建图
  • 因为是求图上包含特点一点最小环,所以建出最短路树
  • 因为是无向图定向构造环,所以使用 DFS 树
  • 因为是查询区间 \([l,r]\) 是否有长度为 \(len\) 的循环节,所以可以直接查询区间 \([l, r-len]\) 是否与 \([l+len,r]\) 完全相同
  • 因为是计算 \(f_{x} = \sum_{ij\%P=x}g_{i}*h_{j}\) ,所以可以用原根乘法转为指数上的加法,再使用 NTT
  • 因为是计算树上点集最远距离,所以可以直接转为求点集直径(可看作虚树)
  • 因为是求形如 \(MAX \frac{\sum s_i\times m_i}{\sum m_i}\) ,所以可以考虑01分数规划(二分答案)
  • 因为有关联通块,所以考虑点减边容斥!!!
  • 因为所求式子为分数形式,所以考虑取倒数(一般分子较难处理可以选择这样尝试)
  • 因为所求权值之间互不影响,所以考虑拆位
  • 因为询问数据基于随机,所以分治做法期望 \(O(q)\)(理论 \((qlogn)\)
  • 因为有多种可选择操作,所以考虑可以找出无用操作(包括可被代替、对答案无贡献)
  • 因为答案方案数\(2\) 取模,所以可以考虑哪些贡献是可以不用计算的(如计算偶数次的贡献)
  • 因为上一次可走 \(k\) 步,所以可以考虑建出 \(k\) 层分层图
  • 因为要求多段单增/单降的长度,所以可以考虑直接贪心(可见 luogu P8827
  • 因为是一次询问是多个操作的叠加,所以可以考虑线段树分治
  • 因为是多次合并操作,所以可以将一块的权值存在某一特殊节点中
    eg: 在树上链合并时,可以将信息存在块内总LCA处(最高点)
  • 因为求最优方案,所以可以考虑寻找方案的上界和下界
  • 因为求是否有一种方案满足,所以可以比较不满足的方案数总方案数来判断(可以将题目转为计数)
  • 因为是树上问题,所以可以先考虑序列上求解,再树剖拎成序列问题(树剖拎出来复杂度 \(log\) !!!
  • 因为是树上拓扑序遍历,所以可以考虑最优点往祖先合并
  • 因为运用位运算,所以考虑拆位
  • 因为是乘法运算,所以可以转成对数变成加法运算
  • 因为数据范围不对劲时,所以考虑大胆dp(大胆dp !!!
posted @ 2024-08-12 16:35  Biuld  阅读(4)  评论(0编辑  收藏  举报