03 2022 档案
摘要:维护动态序列 支持插入和查询区间最大值 平衡树上要维护两个权值: 一个是这个点所代表的dp值 一个是val值 代表dp最大值 两个不能重叠 否则在分裂的时候会出错 #include <iostream> #include <cstdio> #include <cstring> #include <c
阅读全文
摘要:动态序列的维护问题 也可以用文艺平衡树的方式来简化操作 #include <iostream> #include <cstdio> #include <cstring> #include <ctime> #include <cstdlib> using namespace std; const in
阅读全文
摘要:翻转子序列 平衡树进行序列操作是在下标为权值的基础上建立的平衡树 这样做会有几个性质: 一颗子树代表着一个子序列 不记录下标 树的形态就是序列的形态 平衡树上只记录数值 对于初始序列 我们可以直接建树 #include <iostream> #include <cstdio> #include <c
阅读全文
摘要:#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #define ll long long using namespace std; const int N=10050; const int b
阅读全文
摘要:给定一个棋盘 每次可以向下或者向右移动一格 不能移动到某些禁止的位置 求移动到右下角的方案数 阶乘逆元的: \[ (i!)^{-1} \equiv ((i+1)!)^{-1} \times (i+1) \mod p
阅读全文
摘要:有m个猫 p个人 n个地点 每个点有若干只猫 每个猫会在的时候可以开始被接走 每个人只能从1走到n 距离上要花费时间 求小猫等待时间的和的最小值 贪心来创造dp序: 可以先考虑没有距离的情况 然后把距离减到 构成等效时间 #include <iostream> #include <cstd
阅读全文
摘要:有 N 个任务排成一个序列在一台机器上等待执行,它们的顺序不得改变。 机器会把这 N 个任务分成若干批,每一批包含连续的若干个任务。 从时刻 0 开始,任务被分批加工,执行第 i 个任务所需的时间是 Ti。 另外,在每批任务开始前,机器需要 S 的启动时间,故执行一批任务所需的时间是启动时间 S 加
阅读全文