摘要: 题目描述: 有一个序列,给出该序列中的数两两的$gcd$,并打乱顺序,求原序列。 解题思路: 首先,原序列中的数一定会在新序列中出现,而且$gcd(a,b)\leq a,b$。那么新序列中最大和次大的数一定是原序列中的数,那第三大是不是呢?显然要先去除已经确定的数的两两$gcd$,再找剩下的数最大数 阅读全文
posted @ 2016-08-16 22:49 Awner 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 平面上有一些鱼,初始时鱼会在一些位置,某些时刻编号在一段区间内的鱼会同时向$x$轴正方向,或$y$轴正方向平移一定距离,某些时刻会询问一个矩形内鱼的数量。 解题思路: 显然地,求一个矩形内的鱼可以用矩形四个顶点为右上角的整个左下矩形加加减减。那么问题就转化为一个顶点左下角矩形内鱼的数量。 阅读全文
posted @ 2016-08-16 22:42 Awner 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 给定字符串,求字符串中最大的连续重复子串出现次数是多少。 解题思路: 如果一个重复子串的长度是$l$,那么它一定跨过$S_0,S_l,S_{l*2},S_{l*\cdots}$中连续的两个,那我们就可以枚举$l$,枚举起始位置$i*l$,用$SA$求出$S_{i * l},S_{i*l+ 阅读全文
posted @ 2016-08-16 22:30 Awner 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 给出一个$N*N$的矩阵,每一行、每一列,有且仅有一个特殊点。问有多少个$K*K$的矩阵内恰好有$K$个特殊点。 解题思路: 转换下模型,矩阵可以看成一个$N$的排列,求的是有多少连续子序列中的数是一个区间中连续的,也就是最大数减最小数等于长度减一。那么我们就可以考虑分治解决,对于跨过分 阅读全文
posted @ 2016-08-16 22:16 Awner 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 有$n$种数,每次可以取恰好$k$个数,一种数可以取无数次,问有哪些可能的和。 解题思路: 最朴素的$dp$是$n^4$的,我们考虑优化到$n^3$。因为恰好$k$个数的限制条件有些麻烦,我们将所有数都减去最小的一个数,这样我们可以取少于$k$个,不足的就取最小的那个补充。也就是设$F_ 阅读全文
posted @ 2016-08-16 22:02 Awner 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 定义$mex(i,j)$为序列中第$i$项到第$j$项中没有出现的最小自然数。给定序列,求$\sum^{n}_{i=1}\sum^{n}_{j=i}mex(i,j)$。 解题思路: 首先我们可以$O(n)$预处理出$mex(1,1\sim n)$,因为显然的是$mex$是递增的。然后我们 阅读全文
posted @ 2016-08-16 21:53 Awner 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 有一幅$n$个点$m$条边的图,问单独删掉哪些点,可以使原图变成一棵树。(保证至少有一个解) 解题思路: 注意到树的性质是有$n$个点,$n-1$条边的联通图。而删掉一个点后新图有$n-1$个点,所以需要选择的点的度数是$m-(n-2)$。而要保证新图联通,所以要先$Tarjan$找割点 阅读全文
posted @ 2016-08-11 22:46 Awner 阅读(137) 评论(0) 推荐(0) 编辑