10 2019 档案
摘要:题目链接: "https://www.luogu.org/problem/P2146" 本题涉及算法: 树链剖分; 线段树(区间更新及求和,涉及懒惰标记) 然后对于每次 ,需要将 到 的路径上面的点全都置为1。 那么在置为1之前统计一下节点数量 num1, 在置为1之后统计一下节点数量 num2,
阅读全文
摘要:题目链接: "https://www.luogu.org/problem/P3178" 这道题目是一道树链剖分的模板题。 但是在解决这道问题的同事刷新了我的两个认识: 第一个认识是:树链剖分不光可以处理链,还可以处理 __子树__ ,因为: 节点 的子树中所有的点的编号都覆盖在 到 这个区间内! 第
阅读全文
摘要:题目链接: "https://www.luogu.org/problem/P2590" 树链剖分模板题。 剖分过程要用到如下7个值: :u的父节点编号; :u的深度; :u为根的子树中节点总数; :u的重儿子; :u所在的重链的顶部节点; :u在线段树中的位置; :seg的倒置,即 。 然后套线段树
阅读全文
摘要:题目涉及算法: 成绩:入门题; 图书管理员:模拟; 棋盘:最短路/广搜; 跳房子:RMQ/二分答案/DP(本人解法)。 成绩 题目链接: "https://www.luogu.org/problemnew/show/P3954" 入门题,直接计算一下即可。 实现代码如下: 跳房子 题目链接: "ht
阅读全文
摘要:题目链接: "https://www.luogu.org/problem/P3957" 这道题目我用到了如下算法: 线段树求区间最大值; 二分答案; DP求每一次枚举答案g时是否能够找到 ≥k 的解法。 我们一开始用 x[i] 和 s[i] 来表示到起点的距离以及第 i 个点的
阅读全文
摘要:题目涉及算法: 买铅笔:入门题; 回文日期:枚举; 海港:双指针; 魔法阵;数学推理。 买铅笔 题目链接: "https://www.luogu.org/problem/P1909" 设至少要买 num 只笔,且对于每只钱币,设它的价格为 a ,笔数为 b ,则花费为最大的那个 $\lc
阅读全文
摘要:题目涉及算法: 金币:入门题; 扫雷游戏:入门题; 求和:简单数学推导; 推销员:贪心。 金币 题目链接: "https://www.luogu.org/problem/P2669" 入门题,直接开一个循环遍历一下就可以了。 实现代码如下: c++ include using namespace s
阅读全文
摘要:题目涉及算法: 珠心算测验:枚举; 比例简化:枚举; 螺旋矩阵:模拟; 子矩阵:状态压缩/枚举/动态规划 珠心算测验 题目链接: "https://www.luogu.org/problem/P2141" 因为数据量比较小,直接暴力枚举即可。 实现代码如下: c++ include using na
阅读全文
摘要:_作者:zifeiy_ _标签:状态压缩、枚举、动态规划_ 题目链接: "https://www.luogu.org/problem/P2258" 这道题目状态压缩是肯定的,我们需要用二进制来枚举状态。 江湖上有一句话,叫做“暴力出奇迹”,所以我一开始是暴力枚举的。 暴力枚举50分 下面是我暴力枚举
阅读全文
摘要:题目涉及算法: 计数问题:枚举; 表达式求值:栈; ~~小朋友的数字:动态规划;~~ 车站分级:最长路。 计数问题 题目链接: "https://www.luogu.org/problem/P1980" 因为数据量不大,所以直接枚举一下每个数,然后统计一下x出现的次数就可以了。 实现代码如下: c+
阅读全文
摘要:题目涉及算法: 数字反转:模拟; 统计单词数:模拟; 瑞士轮:模拟/排序; 表达式的值:后缀表达式/DP。 数字反转 题目链接: "https://www.luogu.org/problem/P1307" 这道题目是一道基础的模拟题,只需要模拟将数字进行翻转就可以了,注意 0 和 负数。 实现代
阅读全文
摘要:题目链接: "https://www.luogu.org/problem/P1310" 本题涉及算法:栈、前缀表达式转后缀表达式,动态规划思想。 这道题目我思考了好长时间,第一时间让我做的话我也做不出来。 看洛谷上面的题解给了我很大的启发。 其中最重要的两点启发是: __启发1:中缀加操作数预处理_
阅读全文
摘要:题目涉及算法: 质因数分解:入门; 寻宝:模拟; 摆花:动态规划; 文化之旅:搜索。 质因数分解 题目链接: "https://www.luogu.org/problem/P1075" 这道题目只需要开个 for 循环就能够把书求出来。 开一个循环变量 i 从 2 开始一直加加,碰到的第一个能够整除
阅读全文
摘要:题目链接: "https://www.luogu.org/problem/P1981" 这道题目就是一道简化的中缀转后缀,因为这里比较简单,只有加号( )和乘号( ),所以我们只需要开一个存放数值的栈就可以了(如果涉及加减乘除则需要开另一个用于存放符号的栈)。 首先,我们读取一个整数并将其入栈。 然
阅读全文
摘要:题目链接: "https://www.luogu.org/problem/P1449" 这道题目我们只需要开一个栈,每次读取到一个数的话就将这个数 push 进栈。 因为提供给我们的时候已经是一个后续序列了,所以能保证每次遇到一个符号的时候栈中至少有2个元素。 我们先从栈中取出一个元素,设为 a
阅读全文
摘要:题目涉及算法: 多项式输出:模拟; 分数线划定:模拟、排序; 细胞分裂:质因数分解; 道路游戏:动态规划。 多项式输出 题目链接: "https://www.luogu.org/problem/P1067" 纯模拟题。注意符号和1、0。 实现代码如下: c++ include using names
阅读全文
摘要:题目涉及算法: ISBN号码:简单字符串模拟; 排座椅:贪心; 传球游戏:动态规划; 立体图:模拟。 ISBN号码 题目链接: "https://www.luogu.org/problem/P1055" 简单字符串模拟。 实现代码如下: c++ include using namespace std
阅读全文
摘要:题目涉及算法: 奖学金:结构体排序; 纪念品分组:贪心; 守望者的逃离:动态规划; Hanoi 双塔问题:递推。 奖学金 题目链接: "https://www.luogu.org/problem/P1093" 这道题目就是一道简单的结构体排序。 实现代码如下: c++ include using n
阅读全文
摘要:题目涉及算法: 明明的随机数:简单模拟; 开心的金明:01背包; Jam的计数法:模拟; 数列:二进制。 明明的随机数 题目链接: "https://www.luogu.org/problem/P1059" 简单模拟:排序+去重。使用 + 实现。 实现代码如下: c++ include using
阅读全文
摘要:题目涉及算法: 陶陶摘苹果:入门题; 校门外的树:简单模拟; 采药:01背包; 循环:模拟、高精度。 陶陶摘苹果 题目链接: "https://www.luogu.org/problem/P1046" 循环一遍,找到有多少数小于等于陶陶的身高+椅子的高度的即可。 实现代码如下: c++ includ
阅读全文
摘要:题目涉及算法: 不高兴的津津:入门题; 花生采摘:贪心; FBI树:递归、DP求区间和; 火星人:模拟。 不高兴的津津 题目链接: "" 简单枚举。 遍历一遍,找到 a[i]+b[i] 最大的那个坐标即可。 实现代码如下: c++ include using namespace std; i
阅读全文
摘要:题目涉及算法: 乒乓球:简单字符串模拟; 数字游戏:区间DP; 栈:卡特兰数 麦森数:高精度、快速幂、数学。 乒乓球 题目链接: "https://www.luogu.org/problem/P1042" 这道题目是一道较为繁琐的字符串模拟,有点烦但是并不难。 我的代码的思想是将到‘E’为止的输入全
阅读全文
摘要:题目涉及算法: 级数求和:入门题; 选数:搜索; 产生数:搜索、高精度; 过河卒:动态规划。 级数求和 题目链接: "https://www.luogu.org/problemnew/show/P1035" 开一个for循环,每次加上1/i,知道和 >K 即可。 实现代码如下: c++ i
阅读全文
摘要:题目涉及算法: 数的计算:动态规划; 最大公约数和最小公倍数问题:质因数分解; 求先序排列:递归; 装箱问题:动态规划(纯0 1背包问题) 数的计算 题目链接: "https://www.luogu.org/problem/P1028" 这道题目可以用动态规划进行求解。 我们令 f[i] 表示自
阅读全文
摘要:题目及涉及的算法: 数字统计:入门题; 接水问题:基础模拟题; 导弹拦截:动态规划、贪心; 三国游戏:贪心、博弈论。 数字统计 题目链接: "洛谷 P1179" 这道题目是一道基础题。 我们只需要开一个变量 cnt 用于统计 2 出现的次数,然后从 L 到 R 去遍历每一个数 i
阅读全文
摘要:中央处理器(CPU,central processing unit)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU 自产生以来,在逻辑结构、运行效率以及功能外延上取得了巨大发展。 你可以把CPU当做计算机的 __大脑__ 。 CPU其实就是超大规模集成电路(Very La
阅读全文
摘要:_作者:zifeiy_ _标签:状态压缩、搜索_ 题目链接: "https://codeforces.com/contest/3/problem/C" 题目大意: 有一个 3×3 的棋盘,给你一个棋盘当前的状态,请你输出当前这个状态对应的描述。 解题思路: 3×3
阅读全文
摘要:_标签:线段树_ 这篇文章主要内容主要来自 NotOnlySuccess 大神若干年前博客中的博文 《【完全版】线段树》,由于时间有些久远,现在已经找不到大神的原博文了,所以整理了一些网上的资料,在这里还原一下。 代码风格 是题目给的最大区间,而节点数要开4倍,确切来说节点数要开大于 maxn 的最
阅读全文
摘要:_作者:zifeiy_ _标签:线段树_ HDU1698 Just a Hook 题目链接: "http://acm.hdu.edu.cn/showproblem.php?pid=1698" 线段树功能: update:成段更新(因为query操作只涉及一次总区间,所以可以直接输出1节点的信息) P
阅读全文
摘要:_作者:zifeiy_ _标签:线段树_ __单点更新__ :最最基础的线段树,只更新叶子节点,然后把信息用 这个函数更新上来 HDU1166 敌兵布阵 题目链接: "http://acm.hdu.edu.cn/showproblem.php?pid=1166" 线段树功能: update:单点增减
阅读全文
摘要:_作者:zifeiy_ _标签:动态规划、最短路_ 题目链接: "https://www.luogu.org/problem/P1280" 题目大意: 有k个任务分布在第1至n这n个时间点,第i个任务的于第 Pi 分钟开始,持续时间为 Ti 分钟,则该任务将在第 Pi+Ti1
阅读全文
摘要:_作者:zifeiy_ _标签:模拟_ 题目出处: "Spreadsheets" 题目描述 在流行的电子表格系统中(例如,在Excel中),使用如下计算方式来对列号进行计算。 第1列对应A,第2列对应B,……,第26列对应Z。然后使用两个大写英文字母来表示列:第27列对应AA,第28列对应AB,第5
阅读全文
摘要:作者:_zifeiy_ 标签:_排列组合,错排问题_ 题目链接: "https://www.luogu.org/problem/P1595" 题目描述:某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。 可以发现,这就是一道纯纯的“错排问题”。 __错排问题_
阅读全文
摘要:_作者:zifeiy_ _标签:贪心_ 题目链接: "https://www.luogu.org/problem/P1809" 我们假设第 i 个人过河的耗时是 t[i] ,并且 t[i] 按照从小到大进行了排序(即: t[i]≤t[i+1] ), 并且设状态 f[i]
阅读全文
摘要:_作者:zifeiy_ _标签:状压DP,子集划分DP_ 题目链接: "https://codeforces.com/contest/1238/problem/E" 题目大意: 给你一个长度为 n(n≤105) 的字符串s和 m(m≤20) ,这个字符串由前 m 个小写
阅读全文
摘要:_作者:zifeiy_ _标签:概率DP_ 题目链接: "https://www.luogu.org/problem/P2719" 我们设 用于表示还剩下n张A类票m张B类票时最后两张票相同的概率,则: 如果 n≤1 且 m≤1 ,则 f[n][m]=0 (凑不齐两张
阅读全文
摘要:_作者:zifeiy_ _标签:Treap_ 首先,我么要知道:Treap=Tree+Heap。 这里: Tree指的是二叉排序树; Heap指的是堆。 所以在阅读这篇文章之前需要大家对 __二叉查找树__ 和 __堆(Heap)__ 有一定的认识。 Treap支持如下操作: 1. 插入x数 2.
阅读全文
摘要:_作者:zifeiy_ _标签:左偏树_ 这篇随笔需要你在之前掌握 __堆__ 和 __二叉树__ 的相关知识点。 堆支持在 O(logn) 的时间内进行插入元素、查询最值和删除最值的操作。在这里,如果最值是最小值,那么这个堆对应地称为小根堆;如果最值是最大值那么这个堆对应地称为大根堆。 当
阅读全文