mip001's Blog

Make Impossible Possible

纪念我本场唯一一道赛时过的题

题意:有一个长度为 10910^9 的序列 aa,初始均为 00。给定 nn 个序列上的区间 [li,ri][l_i,r_i]。进行 mm 次操作,每次给定 p,xp,x,表示让 apa_p 加上 xx。每次操作之后,令区间 [li,ri][l_i,r_i] 的权值为 j=liriaj\sum\limits_{j=l_i}^{r_i} a_j,你需要找到这 nn 区间中的最大权值。

1n,m4×1051\leq n,m\leq 4\times 10^5

阅读全文 »

题目传送门

题目翻译:

给定长度为 nn 的序列 aa。对于 1i<jn1\leq i<j\leq n,若不存在 k[1,n]k\in[1,n] 使得 akaia_k\mid a_iakaja_k\mid a_j 那么 (i,j)(i,j) 是好的。求出好的数对数量。ai,n106a_i,n\leq 10^6

注意到若 akaia_k\mid a_iakaja_k\mid a_j,那么 aka_k 一定也能整除 gcd(ai,aj)\gcd(a_i,a_j)。那么我们可以通过枚举 gg,找出最大公约数为 gg 的数对的个数 fgf_g,最后答案即为 fg[1kn,akg]\sum f_g[\forall 1\leq k\leq n,a_k\nmid g]

阅读全文 »

传送门

简要题意:求长为 nn 的排列的波动序列的个数。

考虑 DP,设 fi,jf_{i,j} 表示长度为 ii 的排列中,不合法元素有 jj 个的方案数,其中不合法元素指的是一个排列里既不是山峰也不是山谷的元素。显然我们最后要的答案即为 fn,0f_{n,0}。下面考虑转移

可以考虑如何从 fif_ifi+1f_{i+1}。这其实相当于在长度为 ii 的排列中插入一个数 i+1i+1,显然 i+1i+1 就是是这个排列里最大的数了。容易发现,插入这个数后这个排列的不合法元素要么不变,要么加一,要么减一,那么我们分别分析这三种情况。

阅读全文 »

我就是来水博客的

阅读全文 »

Day 1

T1 划

题意:给一个长度为 nn 的序列 aa 和一个 dd,求最长的子区间 [l,r][l,r],使得区间内的数排序之后相邻元素相差不超过 dd,要求输出找到的区间长度。n3×105,0ai109n\leq 3\times 10^5,0\leq a_i\leq 10^9

即找到最大的区间使得每个除了区间最大值以外的元素 xx 都有 x+d\leq x+d 的元素存在。

那么我们只需要跑出所有元素的左边和右边第一个 x+d\leq x+d 的元素,这个可以用 setset 维护;还需要知道所有元素的左边和右边最大的区间使得该元素为此区间的最大值,可以用单调栈维护

然后枚举 rr ,用线段树维护其最小的左端点即可,时间复杂度为 O(nlogn)O(n\log n)

阅读全文 »

2.1 记号

有确定界限的形式

我们要对一个有确定界限的式子求和:

a1+a2++ana_1+a_2+\cdots+a_n

其中每个 aka_k 都是用某种方式定义的一个数。

我们可以用求和符号 \sum 将其表示成这样:

k=1nak\sum\limits_{k=1}^{n}a_k

阅读全文 »

题意

题面传送门

这是一道交互题。

目标:求出整数 x1nx\in 1\sim n

每次询问一个集合 SS,交互库会返回是否 xSx\in S。交互库会骗你,但不会连续两次骗你。

其中,n105n\leq 10^5,至多询问 5353 次。交互库自适应

阅读全文 »

注意:正如题目所言,本篇文章是学习笔记,只记录了某个知识点的框架和重点,具体内容请参照其它文章

第一部分:最小生成树

性质:

  • 边权和最小
  • 任意两点之间的最大边权最小
阅读全文 »
0%