摘要:
题目翻译 题解 容易想到$O(n^2)$的暴力,也就是对于每个区间依次枚举与之有重叠的区间。但是时间复杂度只允许在$O(nlogn)$及以内,因此需要考虑优化。 若使两个区间$i,j$重叠,只需满足$r_j\ge l_i$且$l_j\le r_i $,当然$i,j$可以互换,但为了不重复计数令$i$ 阅读全文
摘要:
题目链接 题解 容易想到,因为选出的m个数与在原序列中的顺序无关,所以可以将$a$序列排序,然后找到每一个满足最大值与最小值的差$\le k$的区间,排列组合选出$m$个数即可。具体实现的问题有两个:找到区间与排列组合。 找到区间:进一步分析可得,我们并不需要这个区间的左右端点,只要知道其中元素的个 阅读全文
摘要:
题目链接 题解 将题意简化,对于$i$满足$1\le i\le n$,设$b_j=a_j$到$a_{j+i-1}\(的最小值\)(1\le j\le n-i+1)$,我们需要判断$b$序列是否为$n-i+1$的全排列。因为枚举每一个$j$的时间已经是$O(n^2)$,而此题时间复杂度需要在$O(nl 阅读全文
摘要:
题目链接 题解 博弈论问题。必胜状态(对于先手的),也就是所有一步可以到达的点中至少有一个为必败的点;而必败点则是所有一步可达的点全部为必胜的点。 因为必败点上面或右面的店一定是必胜点,所以必败点与必胜点不在一条对角线上,也就是说一条对角线上的点都是必败点或必胜点。所以只需检查过原点的对角线最靠近圆 阅读全文
摘要:
题目链接 题解 什么时候可以执行操作:若想将$a_i$取出到$b$数组中,则$a_$与$a_{i+1}$中一定有一项没有出现在$b$数组接下来的元素中,因为要将其删除。 如何统计答案:假设$a_i=b_j$,对于每一个$b_j$有两种可能方案,删除$a_$或$a_{i+1}$。易证,在两种方案都可执 阅读全文
摘要:
题目链接 题解 为了计算面积,需将三角形中与网格平行的边作为三角形的底。显然底越长面积越大,因此对于点$A$,可以将满足$AB$与网格平行且距离最长的$B$的数值改为与$A$一样。而另一个顶点为满足高最长,一定是$d$数值可以到达的最上、最下、最左或最右的格点,预处理即可。 AC代码 #includ 阅读全文