11 2024 档案
摘要:2024 NOIP游寄 本蒟蒻第一次参加NOIP,目前估分130pts,拿二等奖都很悬。 赛时只写完了T1正解,苦呀西!T2,T3是我不擅长的计数类问题,T4也是没什么思路。 (第一题)编辑字符串(edit) 【题目描述】 小 M 有两个长度为 n 且字符集为 {0, 1} 的字符串 s1, s2。
阅读全文
摘要:整除分块: 对于类似于 的式子, 的值的个数不超过 个(下面有证明),故可以对于每一个结果去计算其贡献。 代码如下: void calc(int n) { for(int l = 1, r
阅读全文
摘要:逆元(自学内容) 定义:若 , 则称 关于 模 的乘法逆元为 。也可表示为 。 当a与f互素时,a关于模f的乘法逆元有解。 如果不互素,通过公式‘a/b mod p = (a mod (
阅读全文
摘要:Floyd判圈算法 (又称龟兔赛跑算法) 作用: 1.判断链表是否有环 2.计算环的长度 3.寻找环的起点 判环: 【快慢指针】定义两个指针,慢指针(slow)每次前进一步,快指针(fast)每次前进两步,这里只要fast比slow前进的快即可,但前进步长太多会增加代码运行时间,所以采用两倍于slo
阅读全文
摘要:欧拉路径 模板题 一个感性的定义:一笔画路径,经过一次所有的边,点可以多次走 特别的,若该路径的起点与终点相同,则称其为 欧拉回路 欧拉路径的存在条件: 此图连通; 对于无向图,当且仅当度数为奇的点的个数为 0 或 2; 对于有向图,当且仅当 入度与出度不同的点的个数为 0 或 2; 当入度与出度不
阅读全文
摘要:2-SAT问题 2-SAT 问题, 简单来说,就是给出一个由 n 个布尔值组成的序列 A,再给出 m 个限制关系,每个条件的形式都是 Xi 为真/假 或 Xj 为真/假(比如:A[x] AND A[y]=0、A[x] OR A[y] OR A[z]=1 等),来确定 A[0..n-1] 的值,使得其
阅读全文
摘要:强连通分量,缩点算法:Tarjan 代码及模板 前言:前期先要把Tarjan的思想领悟到,但是有很多算法的核心思路就是Tarjan,所以在代码中一般都把这些算法的函数名写作Tarjan,但这些Tarjan是有细小区别的,中后期一定要注意区分这些算法的区别。 强连通图:有向图,任意两点有路径 强连通分
阅读全文
摘要:MinMax算法和Alpha-Beta剪枝 Minmax:一种用于博弈论 的 暴力dfs搜索算法。 思想: 假设先手为 alpha(A),后手为 beta(B)。现在,每一个dfs的搜索状态有一个权值 (可以是估价值),A想获得最大的 (即初始状态w最大),B想要A获得最小的\(w
阅读全文
摘要:李超线段树 代码 作用: 加入一个一次函数,定义域为 [l,r]; 给定 k,求定义域包含 k 的所有一次函数中,在 x=k 处取值最大的那个,如果有多个函数取值相同,选编号最小的。 李超线段树使用条件:任意两函数之间最多只能有一个交点。大部分情况下李超线段树维护的是直线。 李超线段树的每一个节点维
阅读全文
摘要:CDQ分治 有n个元素,第 i个元素有ai,bi,ci三个属性,设 f(i) 表示满足 aj ≤ ai且 bj ≤ bi 且 cj ≤ ci且 j != i 的 j 的数量。 求f数组。 解决三维偏序的流程: 同样有归并排序和树状数组两种做法,我们这里给出树状数组做法。 先按一维属性排序和去重 1.
阅读全文
摘要:左偏树 例题 用处:一种支持 的合并的二叉堆。 “ 对于一棵二叉树,我们定义 外节点 为左儿子或右儿子为空的节点,定义一个外节点的 为1 ,一个不是外节点的节点 为其到子树中最近的外节点的距离加一。空节点的 为0。” 左偏树的定义
阅读全文
摘要:子集和dp 用处 统计n维偏序,但是每一维的大小只能是2。 计算子集权值之和。 实际上以上两种问题是等价的。 例如目前有一个集合:101(其中1表示有某个物品,0表示没有)。 那该集合包涵的子集有4个:101,100,001,000。现在要把这4个集合的权值加起来。 按照第二种理解(用处),我们可以
阅读全文