摘要:
题意:给定N个初始长度均为0,坐标为1-N的向y轴正坐标延伸的线段。给定M个操作,每个操作将横坐标为x的线段长度变为y,求每次操作以后(0,0)与(i,yi)的连线不被其他线段所阻挡的线段的数量。 题解:显然对于所有不被阻挡的线段,其斜率一定是单调递增的,由于每次修改只会影响到后面的线段能不能看到( 阅读全文
摘要:
题意:给定一个由(,)组成的括号序列,维护:1、将[a,b]修改为同一种半括号 2、将[a,b]翻转 3、将[a,b]的(变为),)变为( 4、求[a,b]最少要添加多少个括号才能合法 题解: 不算太裸的平衡树……论标记的正确打法。 对于一个括号序列,我们总能简化成一个左边全是右括号,右边全是左括号 阅读全文
摘要:
题意:给定一个数列,要求维护:1、在p之后加入tot个数 2、删除p之后tot个数 3、将p之后tot个数修改为c 4、翻转p之后tot个数 5、输出p之后tot个数的和 6、输出整个数列的最大子段和。 题解:平衡树很经典的题目了……主要说一下4和6操作,4的话因为翻转操作是可以分治的,所以可以用翻 阅读全文
摘要:
题意:开始时给定一个空的数列,要求维护:1、加入一个数 2、数列中所有元素+k 3、数列中所有元素-k 4、查询数列中的第k大。其中对于任意时刻,如果有一个元素<Min,则删除该元素。 题解:平衡树裸题……话说当年还打算把Splay Treap SBT都学一下,结果现在只会Splay了QAQ #in 阅读全文
摘要:
题意:给定y z p,求:1、yzmod p 2、y-1z mod p 3、yx≡z(mod p)的x 题解:题意即题解 #include <map> #include <cmath> #include <cstdio> #include <cstring> #include <cstdlib> # 阅读全文
摘要:
题意:${x_{i + 1}} = (a{x_i} + b)\bmod p$,求最小的n使xn=t,无解输出-1,保证p为质数。 题解: 学好数理化,走遍天下都不怕 显然有\[{x_n} = {a^{n - 1}}{x_1} + b\sum\limits_{i = 0}^{n - 2} {{a^i} 阅读全文
摘要:
题意:求${G^{\sum\limits_{d|N} {C_N^d} }}\bmod P$ 题解: 设\[A = \sum\limits_{d|N} {C_N^d} = A\bmod (P - 1) + k(P - 1)\]由费马小定理,G^A可以直接把k(P-1)省略掉,因此问题变成求G^[A%( 阅读全文
摘要:
题意:给定一颗树,维护:1、给定一个节点,求该节点到根的路径上总点数-点权和,并将路径上的所有点的权值赋为1 2、给定一个节点,求该节点子树的点权和,并将子树中所有点的权值赋为0 题解:链剖裸题 #include <cstdio> #include <cstring> #include <cstdl 阅读全文
摘要:
题意:给定一张有N个点的有向图,求0到N-1长度为T的路径的总条数。 题解:把长度为K的边拆成K条长度为1的边,然后建出邻接矩阵快速幂裸上。 #include <cstdio> #include <cstring> #include <cstdlib> #include <climits> #inc 阅读全文
摘要:
题意:求12345……101112……(N-1)N mod M的值(被模数就是1-N顺次连接起来)。 题解:丧病的数学老师,看自己写的题解都看不懂了QAQ,首先设${f_i}$=前i个数连接起来 mod M的值,然后按位数不断转移,也就是说,假定当前要增加的数i最高位是10^k,那么\[{f_i} 阅读全文