2019年9月20日
摘要: 题意 给一个非负整数序列,每次问能否异或上一个正整数使得所有的数单调不减。如果能,输出最小的x,否则输出-1。单点修改。多测。要求最多一个log。 思考 只要考虑相邻的两个数。找到这两个数最高的不同的一位,那么只要考虑是一定要异或或者是一定不要异或。 代码 1 #include<bits/stdc+ 阅读全文
posted @ 2019-09-20 09:24 GreenDuck 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题意 一个这样的算法: 现在你cnt和原始数组a,求cnt步数后a的结果。注意a是n排列。 $1 \leq n \leq 10^6,1 \leq cnt \leq \frac{n(n-1)}{2}$ 思考 对于某个i,如果j从i+1循环到了n,那么含义就是将i~n中最小的数放到第i位上,剩下的访问过 阅读全文
posted @ 2019-09-20 09:00 GreenDuck 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题意 构造一棵树,让它有k条直径。边权都是非负整数,要求点数不能超过5000。 $k \leq 5000000$ 思考 让树根底下分别挂着长度为a,b,c的边权为0的链,然后将链的某一端向根连一条边权为1的边,这样共有ab+ac+bc条直径。可以发现,对于数据范围内的k,可以很快地找到这样的a,b, 阅读全文
posted @ 2019-09-20 08:47 GreenDuck 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 题意 对于任意1 ≤k≤N,求有多少个左右区分的恰有k个叶子节点的二叉树,满足对于每个节点要么没有叶子节点要么有两个节点,同时不存在一个叶子节点,使得根到它的路径上有不少于M条向左的边。 答案对998244353取模。 思考 将问题放到平面上考虑。起初在原点,我们考虑树的dfs序,每次向左走一次,得 阅读全文
posted @ 2019-09-20 08:37 GreenDuck 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 题意 给n个字符串,要求给每个字符串选一个子串(可以不连续),并且子串互不相同。求子串最大长度的最小值,并给出一个方案。 $n \leq 100,|s_i| \leq 100$。 思考 鸽了 阅读全文
posted @ 2019-09-20 07:45 GreenDuck 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题意 有一个定义在 k 维非负整点上的函数:$f(x_1,x_2,...,x_k):N_{0}^{k}->\{0,1\}$ ,定义方法如下: 若存在$j∈[1,k],x_j=0$,则$f(x_1,x_2,...,x_k)=0$ 若对$j∈[1,k]$都有$x_j=1$则$f(x_1,x_2,..., 阅读全文
posted @ 2019-09-20 07:40 GreenDuck 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 题意 给出一棵N 个节点的树,树上的每个节点都有一个权值$a_i$。 有Q 次询问,每次在树上选中两个点u, v,考虑所有在简单路径u, v 上(包括u, v)的点构成的集合S。 求$\sum_{w∈S}{a_w or dist(u,w)}$ 其中dist(u,w) 为简单路径u,w 上的边数,or 阅读全文
posted @ 2019-09-20 06:55 GreenDuck 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 题意 给出N 个形如$f_i(x) = a_i x^2 + b_i x $的二次函数。 有Q 次询问,每次给出一个x,询问$max{\{f_i(x)\}}$。$N,Q \leq 5*10^5$。 思考 首先将x大于0还是小于0分类,对于某一类全都除以x,那么就得到了一些直线。最优的答案一定在某条最上 阅读全文
posted @ 2019-09-20 06:42 GreenDuck 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题意 给出n个字符串,每个字符串的开头和结尾可以去除一些连续的子串,也可以不删。问这样删去后连成的不同字符串有多少个。要求线性。 思考 如果是一个字符串,那么建一颗SAM即可。 因为是几个字符串拼在一起,那么在某个字符串的SAM上的某一个点,随时都可以跳到下一个字符串的SAM上的某个一点。那么从后往 阅读全文
posted @ 2019-09-20 06:39 GreenDuck 阅读(152) 评论(0) 推荐(0) 编辑