摘要:
ZJOI2019 语言 若城市 $u,v$ 能够开展贸易,则称 $u$ 可以到达 那么不难发现某个点能到达的所有点连通 如果路径 $s \to t$ 包含点 $u$,$s,t$ 则是 $u$ 的两个极远点,那么 $u$ 的生成树为连通 $u$ 的所有极远点的最小生成树 于是,我们需要事先思考子问题: 阅读全文
摘要:
Codeforces Round 566 (Div. 2) A Filling Shapes 给定一个 $3\times n$ 的网格,问使用 ![][1] 这样的占三个格子图形填充满整个网格的方案数 如果 $n$ 是奇数,那么显然无解,否则考虑每个 $3\times2$ 的方格正好能塞下两个这玩意 阅读全文
摘要:
[TOC] 字符串总结(更新中) By wawawa8 简介:字符串算法总结,包含哈希,trie,KMP,AC自动机,后缀数组,后缀自动机,manacher,回文自动机等 1. 哈希 把字符串按照顺序每一位赋一个值并求和,即将字符串视为一个 的数 通过预处理前缀和以及所有的 $n^k$ 的值,即可快 阅读全文
摘要:
题解 先说说黄学长的做法: 当温度比较高的时候,贪心 每次随机一个数,把他放进当前和最少的那一组里面 温度足够低的时候就完全随机然后转移 对于一个排列,分组强制连续 答案显然唯一,做一遍\(dp\)就好 所以退火的时候每次交换两个位置。。。 cpp include include include i 阅读全文
摘要:
[TOC] "Codeforces Round 558 (Div. 2)" 题解 A "Eating Soup" 分类讨论一下 $m$ 个断点最多可以将环分成 $m$ 段,而剩下 $n m$ 个点最多可以成为 $n m$ 段,取个 $\min$ 即可 注意 $m=0$ 时是一个环答案为 $1$ B 阅读全文
摘要:
出现次数很好处理,就是 $right/endpos$ 集合的大小 那么,直接构建 $SAM$ 求出每个位置的$right$集合大小 直接更新每个节点的$longest$就行了 最后短的可以由长的更新过来就好 cpp include include include include include in 阅读全文
摘要:
构建后缀自动机,求出后缀树 比较明显的dp 设 $f[i]$ 表示从上而下到达当前点能够满足条件的最优值 只需要检查父亲节点是否在当前串中出现过两次就行了 这个判断用 $endpos$ 来判断 如果出现过超过两次,那么在当前点所掌控的任意一个 $endpos$ 以及前面的区间中 必定出现了超过两次 阅读全文
摘要:
首先会想到|x|是不递减的。 于是可以枚举长度L。 再每个L设一个断点,xx必定经过两个断点。 两两断点间求最长公共前后缀,这里用hash+二分会快。 然后一波扫过去就好了。 如果找到了,hash就要重构。 来计算一下复杂度。 一共有O(n log n)个断点,每个求最长公共前后缀复杂度log,这一 阅读全文
摘要:
[LOJ 2039] 「SHOI2015」激光发生器 链接 "链接" 题解 分为两个部分 第一个是求直线之间的交点找到第一个触碰到的镜面 第二个是求直线经过镜面反射之后的出射光线 第一个很好做,第二个就是将入射光线旋转,注意旋转后在哪一面(可能到镜面背后去) 代码 阅读全文
摘要:
[LOJ 2190] 「SHOI2014」信号增幅仪 链接 "链接" 题解 坐标系直到 $x$ 轴与椭圆长轴平行 点的坐标变换用旋转公式就可以了 因为是椭圆,所以所有点横坐标除以 $p$ 然后最小圆覆盖 代码 cpp include define N 50005 using namespace st 阅读全文