按题意模拟。
输出 。
【资料图】
答案是 。
最后一定是一个包含 的矩形,操作次数则是矩形两边长之和。
按题意模拟,因为形成的图是基环树森林,只需判断每个点的度数非零。
会倒塌当且仅当 到 层有一层被取空或是只剩边上的一根积木。
我们要求图是一条链,那么设 到 的距离是 ,则要求所有的 互不相同。从小到大贪心找到最小的满足这个条件的数,注意到这等价于新选择的数不等于 ,所以可以用数组记录这样的数,新加的数的值域也是 。至于相邻的 的差值的限制,可以直接枚举检验。
注:满足条件的序列也叫做 Sidon Sequence 或 Sequence。
显然最后删除的字符应当满足它在每个字符串中的出现次数不同,而将满足这个条件的字符放在最后总是合法的。
这是一个二分图匹配问题,对于两边点数相同的情况,设邻接矩阵为 ,那么答案就是 ,即 的积和式。计算积和式是 #P-Complete 的,但是在 的意义下,。
对于左边 个点,右边 个点的图,要计算左边点集的完美匹配数模 ,只需要计算对于右边点集的每个大小为 的子集,完美匹配的数量之和。可以联想到 Cauchy-Binet 公式,再结合 ,想到只需计算 即可。
扫描 ,用线段树维护每个 的答案,同时维护历史和。
显然最终的两条路径一定是共用一个前缀和一个后缀,枚举这个前缀和后缀的位置,计算两两之间的最短路和次短路,答案就是 的最小值。
不妨设 (只需将 减去 ,将 减去 )。注意到这时可以得到的是所有 ,限制则是 。特判 的情况,剩余情况都可以化为 。答案即为 ,只需计算分子对 取模的结果即可。如果直接计算分子对 取模的结果然后乘 的逆元的话在 的时候会有问题。
求出每棵子树中最早和最晚染色的结点,这棵子树在这个区间内是斑马子树,用差分统计答案。
首先求出最少要多少次插入操作。显然如果切换到栈模式,一定可以生成给定的序列,只需要在不需要保留的数插入后立即删除。只有当序列是连续的一段时可以用队列模式生成。
可以构造一个合法的强度表和排列之间的双射:
强度表到排列:把 插入到强机和弱机之间。
排列到强度表,找到最短的前缀 使得 包含某个 ,然后将 移到最前面,前 个为强机。
因此答案为 。
Copyright @ 2015-2022 中国砍柴网版权所有 备案号: 沪ICP备2022005074号-4 联系邮箱:58 55 97 3@qq.com