上一页 1 2 3 4 5 6 7 ··· 10 下一页
摘要: 题目链接 原题解: 把每个点的坐标视为复数,那么每次询问就是区间求平均数(先求和然后除以个数)。一个点绕着原点旋转就是乘以$(\cos 60^\circ +i\sin 60^\circ)$。 一个点绕着某点$A$旋转可以理解为先减去点$A$的坐标,再绕原点旋转,再加上点$A$的坐标。 最终变成用线段 阅读全文
posted @ 2020-06-04 20:14 汉谡 阅读(212) 评论(0) 推荐(0)
摘要: 题目链接 原题解: 只有一个模式的时候 考虑现在有模式串$M$和文本串$S$,我们想知道是否有$S$的某个子串符合$M$。 先对模式串和文本串进行转化,变成一个整数序列。对于某个字母,如果是在串中第一次出现,那么对应整数$0$;如果不是,则对应到其上一次出现的距离。 比如串$ABBACAB$对应整数 阅读全文
posted @ 2020-06-02 22:48 汉谡 阅读(206) 评论(0) 推荐(0)
摘要: 题目链接 原题解: 从前往后扫描序列,维护当前可能出现在答案中的候选序列。 每当我们遇到一个不在候选序列中的数$x$时,若当前序列中最后一个数$y$在未被扫描得部分中也出现过,且$y>x$,我们可以把$y$弹出候选序列。 重复此操作,然后把$x$加入候选队列。每个元素最多进栈出栈一次,时间复杂度为$ 阅读全文
posted @ 2020-06-02 19:48 汉谡 阅读(204) 评论(0) 推荐(0)
摘要: 题目链接 首先设$a>b$,$a$红$b$蓝,那么对于$[1,\operatorname{lcm}(a,b)]$这个区间内来说,涂红色的格子数就为 $$\dfrac{\operatorname{lcm}(a,b)}{a}=\dfrac{a\times b}{\gcd(a,b)}\times \dfr 阅读全文
posted @ 2020-05-30 10:54 汉谡 阅读(167) 评论(0) 推荐(0)
摘要: 手玩数据有助于开拓思路。 记得对拍来查错。 记得测试极限数据看程序跑速和输出合法性。 阅读全文
posted @ 2020-05-29 22:23 汉谡 阅读(274) 评论(0) 推荐(0)
摘要: 题目链接 我们来研究一下这个隔着一定距离形成的回路。设起点为$i$,距离为$k$,走了$t$步第一次回到$i$,即在$0\sim n-1$编号内,有 $$\begin{matrix} i+t\times k&\equiv&i(\bmod n)\\ t\times k&\equiv&0(\bmod n 阅读全文
posted @ 2020-05-29 22:04 汉谡 阅读(216) 评论(0) 推荐(0)
摘要: 题目链接 首先我们知道,将数列从左向右依次排开,设$f_i$表示$a_i$左侧有多少个比它大的数,那么逆序对总数就是$\sum\limits_{i=1}^n f_i$。 观察/手玩数据可以发现,在某次冒泡排序的过程中,第$k$轮向右移动的数,都具有$f_i=k-1$的性质。 深入观察一下,我们发现, 阅读全文
posted @ 2020-05-29 14:31 汉谡 阅读(172) 评论(0) 推荐(0)
摘要: 题目链接 首先我们发现,各个位置之间,$a$和$b$的原数值并不重要,所以我们可以令$b_i\leftarrow b_i-a_i$,接下来只使用这个差值。 然后我们发现,2操作是可以使两个位置之间的差值进行“流动”。 所以,如果只有2操作,把每个位置看成点,差值是点权,那么2操作就是随意转运权值的无 阅读全文
posted @ 2020-05-29 10:04 汉谡 阅读(147) 评论(0) 推荐(0)
摘要: 题目链接 测试点1~10 观察到$q\le 500$,那我们duck只用暴力维护$500$行和最后一列。 换种说法,对行离散化,每次暴力取出数并且平移数组,时间复杂度和空间复杂度都是$O(nq)$。 测试点11~16 所有$x=1$,那就是只会用到第一行和最后一列。 思考一下,我们每次找到第$k$个 阅读全文
posted @ 2020-05-28 22:28 汉谡 阅读(151) 评论(0) 推荐(0)
摘要: 在线性筛求欧拉函数中,我们用到了以下公式: 若$i$为质数,则$\varphi(i)=i-1$; 若$p_j\mid i$,则$\varphi(i\times p_j)=\varphi(i)\times p_j$; 若$p_i\nmid i$,则$\varphi(i\times p_j)=\varp 阅读全文
posted @ 2020-05-28 08:58 汉谡 阅读(229) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 ··· 10 下一页