随笔分类 -  构造

摘要:题目链接 题解 对于需要颜色相同且位置不同的元素,易得同种颜色数量的最大值越小,越容易构造成功。因此对于颜色、位置均需相同的元素,利用优先队列使其选择数量最大的元素填充。求出剩余元素中同种颜色数量的最大值$ma$,将剩余元素按照值从小到大存储。因为$i$和$i+ma$元素值一定不等,所以两者可以互换 阅读全文
posted @ 2021-08-12 11:15 violet_holmes 阅读(68) 评论(0) 推荐(0)
摘要:题目链接 题解 可以发现 \(k\) 的取值范围只有 \(20\) ,可以枚举答案。若当前答案 \(i\) 成立,则合并在一起的珍珠后 \(i\) 位一定相等。因此对于每对珍珠 \((a,b)\) ,将 \(a\) 后 \(i\) 位的值与 \(b\) 后 \(i\) ​位的值连边。易得若图中存在欧 阅读全文
posted @ 2021-08-12 11:14 violet_holmes 阅读(58) 评论(0) 推荐(0)
摘要:题目链接 题解 将所有逆序对$(x_i,y_i)$按照$y_i$降序排序,若$y_i$相等则按$a_{x_i}$($a$​为原序列)升序排序,若两者均相等则按$x_i$升序排序即可。 对于序列$a$,如果每次寻找一组逆序对并将它们交换,易得经过若干组操作后一定可以化为单调不降的序列,因此我们只需保证 阅读全文
posted @ 2021-08-12 11:13 violet_holmes 阅读(46) 评论(0) 推荐(0)
摘要:题目链接 题解 令未给出的$b_i=b_+1$,模拟单调栈可得若干大小关系(若出栈则说明当前元素$<$栈顶元素,反之亦然)。若$a_i>a_j$,则由$i$向$j$连一条有向边,拓扑排序可得出排序后的排列。易证边数$\le 2n$,因此时间复杂度为$O(nlogn)$($p,x$需自行排序)。 AC 阅读全文
posted @ 2021-07-20 12:47 violet_holmes 阅读(42) 评论(0) 推荐(0)
摘要:题目链接 题解 对于三元组$a$,从二元组$\overline\(到二元组\)\overline$连一条有向边。二元组转换为$62$进制的数保存,求全图的欧拉通路即可。此外,若直接使用邻接矩阵或邻接表存边,会因为访问大量已经过的边而超时(毕竟有重边,单个点会被搜索多次),时间复杂度最坏为$O(nm) 阅读全文
posted @ 2021-06-02 09:17 violet_holmes 阅读(62) 评论(0) 推荐(0)
摘要:题目链接 题解 易得$a$中的元素均在$s$中存在,但倘若原样照搬会产生其他的$gcd$值,因此需要删去或增添些元素。因为删除元素影响的$gcd$值也许不止当前观测的一个,题解作者并未想到删除元素的算法,便尝试增添元素。推导可知,设$a$序列最小值为$mina$,若存在$a_i$满足$a_i% mi 阅读全文
posted @ 2021-03-22 22:32 violet_holmes 阅读(74) 评论(0) 推荐(0)
摘要:题目链接 题解 对于$b$的3个限制,第1个仅由$\not=a_i$且字典位最高的$b_i$决定,第2个不要紧,第3个比较复杂。可以使用set维护当前全部满足第3个限制的$b$候选,埃氏筛求出$b_i$的全部质因数,并将其及其倍数于set中删除。如果每求出一个质因数均删除一遍时间不够,因此使用$vi 阅读全文
posted @ 2021-03-13 18:28 violet_holmes 阅读(58) 评论(0) 推荐(0)
摘要:题目链接 题解 可以发现,如果$a$数组存在对称元素(\(a_i,a_{n-i+1}\))在$b$数组中位置并非对称,则一定无法变换成功,因为无论如何操作对称元素均不会变(如果有多个相等的数则尽量使其合法)。 而如果满足位置对称,则一定存在可行变换方案:\(\{a_1,a_2,...,a_j,... 阅读全文
posted @ 2021-02-25 22:21 violet_holmes 阅读(51) 评论(0) 推荐(0)
摘要:题目链接 题解 因为$d_i>0,i-n\le 0$,为使$|d_i+i-n|$尽可能小,最好令$d_i=n-i$。如下构造可满足此条件: 对于与$n$奇偶相反的$i$,\(\{...,i-2,i,i+2,...,n-1,n-1,...,i+2,i,i-2,...\}\); 对于与$n$奇偶相同的$ 阅读全文
posted @ 2021-02-09 15:52 violet_holmes 阅读(73) 评论(0) 推荐(0)
摘要:题目链接 题解 设$\sum\limits_{2k}x_i$为$sum$,因为前缀和均为完全平方数,可以设整数$b2=sum+x_{2k+1},a2=sum+x_{2k+1}+x_{2k+2}$。进一步推导得$a2-b2=x_{2k+2}$,所以$x_{2k+2}=(a+b)(a-b)$。因此我们可 阅读全文
posted @ 2021-02-03 20:57 violet_holmes 阅读(63) 评论(0) 推荐(0)
摘要:题目链接 题解 答案最大是所有长度为$l$区间中的最小石子数,因为此时石子数最小的长度为$l$的区间石子数为$0$,如果继续增加青蛙则无法越过该区间。而这样的答案是一定可以被构造出来的:设区间$[i,i+l-1],[i+1,i+l]\(,令区间\)[i+1,i+l-1]$的青蛙位置不变,而$i$处的 阅读全文
posted @ 2021-02-02 20:23 violet_holmes 阅读(62) 评论(0) 推荐(0)
摘要:题目链接 题解 为避免构造时出现环,令父结点编号小于子节点。可以发现,对于整数$x$,满足$y<x$且$y^\wedge x$最小的$y$为$x-lowbit(x)\(,此时边\)(y,x)$的权值为$lowbit(x)$。如此构造,\(ans=\sum\limits_{i=1}^{n-1}lowb 阅读全文
posted @ 2021-02-02 20:15 violet_holmes 阅读(82) 评论(0) 推荐(0)
摘要:题目链接 题解 可以发现,能够使另一个方格填色的三个方格的坐标可以写为$(a,b),(a,c),(c,d)\(,由\)(a,b)$以$a$为检索可以找到$(a,c)\(,而\)(a,c)$以$c$为检索找到$(c,d)$。由此想到,将行、列数构造为点,而每一个方格则是一条无向边。如题目样例3可构造为 阅读全文
posted @ 2021-01-28 19:39 violet_holmes 阅读(95) 评论(0) 推荐(0)