随笔分类 - 信竞
记录关于 OI 的博客
摘要:搜索剪枝 优化搜索顺序 大部分情况下,我们应该优先搜索分支较少的结点。 排除等效冗余 可行性剪枝 最优性剪枝
阅读全文
摘要:后缀表达式转表达式树 定义一个树结点的结构体。 开一个栈存储结点 逐个扫描后缀表达式: 如果是数字,直接开一个结点放入栈中。 如果是操作符: 从栈中弹出两个结点,作为一个新开结点的儿子。最后将新开的结点放回栈中。 结束后,栈顶就是表达式树的根结点。 // 这里数字只有一位,如果出现 >10 的数字话
阅读全文
摘要:中->后 初始化一个空栈,用于存储运算符。 逐个扫描中缀表达式的字符: 如果是操作数,直接加入后缀表达式。 如果是左括号 (,将其压入栈。 如果是右括号 ),不断弹出栈顶元素并加入后缀表达式。 如果是操作符: 如果栈为空或者栈顶为左括号,直接压入栈。 否则,比较栈顶操作符和当前操作符的优先级: 若当
阅读全文
摘要:原题链接:P1853 投资的最大效益。 难度:Easy+。 稍有扩展的多重背包模板。 正解 容易发现,对于每年份购买的债券存在一个贪心策略:最大化每年的年利息,那么就可以转为对每年进行考虑。 可以将债券抽象成货物,投资额是体积 ,年利息是价值 ,而背包的容量就是当前的 \
阅读全文
摘要:原题链接:P1313 [NOIP2011 提高组] 计算系数。 难度:Easy。 考察二项式定理的基本应用。 正解 发现存在式子 ,容易想到二项式定理。 二项式定理: \[(x+y)^n=\sum\limits_{i=0}^{n}{n\choose i}x^iy^{n-i}
阅读全文
摘要:原题链接:B3717 组合数问题。 难度:Easy 组合数学的模板题。 排除做法: ,显然不能使用杨辉三角递推。 模数为 ,无法使用 定理。 正解 考虑直接使用组合数的计算式: \[{n\cho
阅读全文
摘要:原题链接:P3183 [HAOI2016] 食物链。 难度:Easy。 根据定义,食物链是一个 DAG,所以可以进行拓扑排序。 食物链也就转化成了:图中从一个入度为 的点到一个出度为 的点的路径。 那么只需要拓扑排序求出所有起点到每个点的路径条数,然后累加出度为
阅读全文
摘要:原题链接:P1901 发射站 难度:Easy。 注意到"最近的且比它高",容易想到用单调栈维护每个能量发射站左右第一个比它高的,最后统计答案即可。 具体的 令 f[i][0/1] 表示能量发射站 右边/左边第一个 的位置 。 用单调栈从左向右扫一遍,得到
阅读全文
摘要:Linux 终端指令 cd path:改变文件目录为 path。 cd ..:改变文件目录为当前目录的父目录。 clear:清屏。 exit:退出终端。 cat file:显示 file 的文件内容。 cp file1 file2:file1 文件拷贝并且重命名为 file2。 cp file pa
阅读全文
摘要:众所周知: 线段树的代码长,常数大; 树状数组的代码短,常数小,甚至可以通过 量级的数据。 所以,能不能实现一个可以区间修改、区间查询的树状数组呢? 由于涉及区间操作,考虑差分数组 。 区间修改 对于原数组 区间每个数加 。 可以
阅读全文
摘要:Splay 树 定义 Splay 树是一个二叉平衡搜索树,它可以通过 Splay 操作 将一个结点旋转至根结点或者一个给定的结点的下一层,使得整棵树仍然满足二叉搜索树的性质。 Splay 树可以在均摊 的时间内完成查找、插入、查询、删除等操作。 二叉搜索树的定义: 空树是
阅读全文