数学
- 概率论
- 计数问题
- 数论
- 线性代数
- 博弈论
比赛经验
- 不要通过数据大小猜测正解的时间复杂度. 把一个方法想到底.
- DP题假如实在不会的话, 果断跳过, 找思维量更小的数据结构题.
一些方法
二分
DP, 尤其多想矩阵乘法优化DP
网络流
FFT
日程表
Fri, Nov 10
明天就是NOIp了.
从上次记录到现在已经将近一个月了, 这个月, 真心没有进步多少, 完全不再状态.
希望不要AFO吧.
这可能是最后一篇记录了.
Sun, Oct 22
AHOI 2009 中国象棋: 统计在棋盘上按照一定规则放置棋子的方案数的经典题. 好题.
Wed, Oct 18
ZJOI 2007 棋盘制作: 悬线法\(O(nm)\)解决最大子矩形问题. 见最大子矩形问题学习笔记.
Tue, Oct 17
有线电视网: 证明了一类树上DP的时间复杂度问题. 这类问题需要合并一个节点的每个字节点的信息, 信息的量与子树的size线性相关. 通过优化枚举, 可以使得合并一个节点的所有子树信息的时间复杂度等于以它为LCA的点对数量, 因而总时间复杂度为\(O(n^2)\).
Tue, Oct 10
循环移位: 好题. 难得一见地同时利用了后缀自动机上的连边与后缀树上的连边. 经验: 找某个子串的后缀字符, 可以用后缀自动机上的连边; 找某个子串的前缀字符, 则用后缀树上的连边.
Mon, Oct 9
Lucas的数论终于算是做出来了...
数论到这里暂时先放一放, 开始看博弈.
Fri, Oct 6
Hero Meets Devil: 第一道DP套DP终于写出来了... 话说真的没看出有什么"套"的感觉呀...
Thu, Oct 5
炮艇: 对于那些存在两个人相遇的问题, 注意相遇的只可能是原本就相邻的两个人.
Mon, Sep 25
后面可能不再每一题都在这里罗列了.
可能只写一些有心得体会的题目.了
小狐狸: 不要忘记了DP除了优先队列优化与斜率优化以外, 还有矩乘优化.
Wed, Sep 20
你问我中间那几天干嘛去了?
我也很绝望啊, 整个人像是傻了一样...
sub: 给定一棵树, 每个点有一个权值, 每次操作可以修改一个点的权值, 或者是询问整棵树中权值之和最大的连通块的权值之和. 做法是用线段树维护区间左边, 右边, 中间的信息. 可以树上的想不到, 可以先想序列上的做法.
Thu, Sep 14
prz: 序列DP. 由于题目给定的每个数字在串中最多出现一次的性质, 可以用巧妙的方法解决.
不虚就是要AK: 点分治傻题. 以后打比赛的时候, 一定要先把所有题目看完, 按照难易程度做.
神奇的树: 树上DP. 实现上稍微有点麻烦. 总结两点经验:
- 不要通过数据大小猜测正解的时间复杂度. 把一个方法想到底.
- DP题假如实在不会的话, 果断跳过, 找思维量更小的数据结构题.
Wed, Sep 13
棋盘控制: 概率与期望 + DP. 注意DP的其中一维是用到的棋子数量. 因为对于同一个控制状态, 用到的棋子个数可能是不同的.
tree: 基环树分治呀... 注意并查集要路径压缩, 否则莫名TLE掉就无可奉告了.
树上的猴子: 差分约束模板题... 这应该是我第一次实现差分约束.
Mon, Sep 11
一点经验: C++中的结构体存在字节对齐, 也就是说同一个结构体中的不同大小变量会被强制变成大小最大的变量处理. 这一点在计算空间的时候一定要加以注意.
Sun, Sep 10
string: KMP建立trie图 + 概率论乱搞. 我的方法本质上是解方程, 但考虑到这个方程组的特殊性质, 可用递推\(O(n)\)进行.
BZOJ 4025: Link-Cut tree维护二分图. 好题.
Sat, Sep 9
fibonacci: 线段树套矩阵乘法优化斐波那契数列. 比较好的题目. 注意假如预处理转移矩阵\(trans^{2^n}\), 则常数会优越不少.
Tue, Sep 5
虫子: link-cut tree好题.
Mon, Sep 4
24点大师: \(2 \times 2 \times 3\)构造题. 不做赘述.
无聊的字符串: 这题貌似是可以用后缀自动机实现的, 但是我的方法比较奇怪, 用了带子节点标号的后缀树. 第一次写, 出了一点小偏差.
Sun, Sep 3
Y队列: 莫比乌斯函数容斥
字典树: 后缀树上树剖. 题意根本就是有问题, 导致我场上爆零. 注意到树剖序列可以直接进行子树修改的性质
Fri, Sep 1
Atcoder Contest 015 E: 关键在于发现, 假如我们把一个点在开始时就染成红色, 可以将哪个区间中的点染红.
集串雷: 分数规划傻题. 鉴于我总是忘记分数规划怎么写, 在题解中同时写了分数规划学习笔记.
Thu, Aug 31
数组: 线段树的奥妙用法
Wed, Aug 30
写了长链剖分学习笔记
crash的游戏: 用到了组合数的现实意义, 以得到DP式子. 总之以后看到不会化简的组合数式子, 就往现实意义去想, 争取用DP解决.
银河战舰: 用了长链剖分思想的好题, 同时还需要知道LIS的另类实现方式.
Tue, Aug 29
任务安排: 优先队列优化DP, 场上没想出来.
river: 网络流 + 构造
ball: 辛普森积分, 再利用了行列式值等于对图形进行线性变换前后体积的比值的性质.
Aug 28, Mon
BZOJ 3672 购票: 树链剖分 + 线段树维护凸包.
BZOJ 4197 寿司晚宴: 分块DP. 运用了一个数大于等于其平方根质因数最多只有1个的性质, 按照\(\sqrt{500}\)分类讨论.
Aug 26, Sat
Divljak强行用后缀自动机写了一发... 还没读入完就MLE了QAQ...
Aug 25, Fri
测试审错题, 强行写了一发虚树...心累...
最小路径覆盖问题复习:
问题概述: 给定一张有向图, 要求找出数量最少的路径, 使得对于每个点有且仅存在一条路径将其包含. 一条路径可以没有边, 只有一个点.
问题解决: 建立二分图, 将每个节点拆成两个状态, 分别表示在一条有向边中的起始节点和结束节点状态. 跑二分图最大匹配, 总节点数减去最大匹配数即可得到答案.
证明非常简单: 我们假设每个点都独立, 而我们找最大匹配的过程相当于把一些点通过路径连在一起. 由于二分图匹配的性质, 保证了一个点只会在一条路径中出现, 因此得证.
Aug 24, Thu
股神小L: 单调队列优化DP, 反正场上是没想到.
股神小D: 树链计数经典题. 用LCT维护联通块大小. LCT的这种用途非常不熟练.
task: 最大权闭合子图. 首先复习一下最大权闭合子图.
最大权闭合子图描述的是一个有向图, 每个点有一个点权, 权值可以为负. 你要在图中找到一个点集\(S\)使得\(S\)的权值之和最大, 并且\(S\)中没有连向非\(S\)中节点的边.
考虑怎么求. 方法很简单, 可以感性地理解为: 考虑取某一个点, 则我们必须同时取上它可以到达的点集. 假如带来的收益为正数我们才会取. 考虑如何计算收益, 就是正权之和减去负权之和, 因此我们从源点向所有正权点连一条权值为该点点权的边, 从所有负权点向汇点连一条权值为该点点权绝对值的边. 在这个图上求最小割, 那么不难发现假如我们割掉一条连向汇点的边, 则说明取这条路径的收益大于付出; 假如取一条从源点连出的边, 则说明付出大于收益.
因此我们只需要用所有正权点权之和减去最大流量即可得到答案.
Aug 23, Wed
网络战争: 大杂烩题, 先是KD-tree, 然后是最小割树, 最后还可能要用LCT. 代码比较恶心, 遂弃坑.
Aug 22, Tue
BZOJ 3473 字符串: 广义后缀自动机 + 启发式合并. 注意在线建后缀自动机的写法. 感觉对于广义后缀自动机还不熟练.
Aug 21, Mon
疯狂求导: 线段树套线段树. 注意由于标记不可合并, 不能用标记下传.
Aug 20, Sun
颓废一天
Aug 19, Sat
学习笔记: 带标号的各种图计数
Aug 18, Fri
树链问题: 智障树剖, 我傻了写了个毛毛虫
Aug 17
Azelso: 概率与期望好题
Aug 16
写了概率论学习笔记
Aug 15
狂飙突进幻想乡: SPFA + 凸包.
Aug 14
crash数列: 花一点时间仔细深挖, 乱搞即可.
直径: 运用了关于树的直径的定理: 两棵树通过一条边连起来后的直径必定在原来两棵树的直径的四个端点中产生. 然后用虚树即可解决. 虚树不熟练, 求树的直径也不熟练.
Aug 13
HNOI 2017 树点涂色: link-cut tree的巧妙应用
Aug 12
ISN把代码补上了. 注意需要对数组排序时最好从\(0\)位开始存.
BZOJ 4543 thr: 按深度树链剖分的神题, 具体原理还不是很理解. 总之对于要在树上合并深度相关的信息时, 就考虑采用按深度树链剖分的方法.
Aug 11
矩阵: 更改了建边方式; 还是没能AC, 甚至都还不能过样例.
冒泡排序: 在找规律时要注意到一些性质.
踩气球: 可持久化线段树的巧妙应用. 对于一些有开始时间和结束时间的问题, 考虑通过可持久化来维护开始时间, 线段树上的点来维护结束时间.
自动机: 提供了一种很好的构造方法.
Aug 10
第二次写recollection: 树上后缀数组 + set启发式合并.
矩阵matrix: 最小割解决一些不等式组中所有未知数和的最大值/最小值问题. 一直WA.
Aug 9, 2017
线性基题目:
BZOJ 4568 幸运数字: 倍增 + 线性基. 傻题.
BZOJ 4004 装备购买: 多维空间中的线性基. 插入时的操作与异或空间中的稍有不同, 需要省掉一些步骤.
Aug 8, 2017
线性基学习笔记, 以及最大异或和与第\(k\)小异或和两道模板题.
第\(k\)小异或和: 注意题目要求取出的是非空子集, 因此得到\(0\)需要作特殊判断: 假如存在一个插入的数, 使得线性基将其异或至\(0\), 则说明存在非空子集的异或和为\(0\), 否则不存在.
原文地址:https://www.cnblogs.com/ZeonfaiHo/p/8379722.html