摘要: 题目链接 题解 ⭐:①可以将整除的条件转化为余数为$0$。②枚举左右端点可以找寻单调性,尝试固定一端二分另一端。 暴力的话枚举左右端点,然后$O(n)$求乘积余数,总时间复杂度为$O(n^3)\(。其中区间乘积求余可以使用线段树维护,又可发现,若区间\)[i,j]$的乘积可以被$k$整除,则对于$j 阅读全文
posted @ 2021-03-13 19:12 violet_holmes 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题解 ⭐:单调栈可以维护$[1,i]$中大于或小于$a_i$的元素。 由于数据范围枚举左右端点并不现实,因此想到求出每个元素对于答案的贡献。设$[1,i)\(中最后一个\)>a_i$的数为$l$,$(i,n]\(中第一个\)>a_i$的数为$r$,$(r,l)$即为$a_i$作为最大值的最 阅读全文
posted @ 2021-03-13 19:11 violet_holmes 阅读(48) 评论(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 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题解 因为只需关注最大值,所以每次使最大值$/2$,如果已有此值则继续$/2$直至出现不在$x$中的值,如果全部在$x$中则现在的序列$x$即为最优方案。设当前$x$中最大值为$a$,不断进行$a/2$得出的数为$b$,因为$b/2$得出的数$a/2$也可以得出,不存在对非最大值进行操作可 阅读全文
posted @ 2021-03-13 18:27 violet_holmes 阅读(51) 评论(0) 推荐(0) 编辑