[填写 5 题]OI 反诈中心

发布时间 2023-11-26 20:09:32作者: Zaunese

seq

https://www.cnblogs.com/HLAUV/p/9871768.html

诈骗,区间长度大于 P 时必为 0。

发现 MP^2 以下的都可以接受,直接 PlogP 地塞入 std::set 中查前驱即可。

另一个抽屉原理

https://www.luogu.com.cn/problem/CF1895G

神秘构造

https://www.luogu.com.cn/problem/AT_arc158_d

sort

一个长为 N 的序列,求构造用最少的栈排序,操作有:

  1. 序列里的最后一个元素 pop,进入栈 i;
  2. 栈 i pop,进入答案序列;
  3. 栈 i pop,进入栈 j;
    操作 1、3 进行相邻相同项合并后,总数不得超过 5N。(多组数据,sum N<=3e5)

诈骗题,栈至多 2 个。

一个栈就维护一个单调栈即可,判一下是否有序,没排好就要 2 个栈。

2 个栈的做法:维护一个栈为单调栈,当插入一个元素时,小于它的全部进入第二个,再插入新元素,然后把第二个栈的放回去即可。

然而做题要看数据范围,不能线性找有多少个小于,要用树状数组。

template

在二维平面上,有 N 个黑点和 N 个白点,记第 i 个黑点的位置为 (axi,ayi),记其权值为 awi;同理,记第 i 个白点的位置为 (bxi,byi),其权值为 bwi。有 Q 次询问,第 i 次询问的范围用 Li,Ri 表示,对于第 i 次询问,需要选择一个黑点 j 和一个白点 k,在同时满足如下条件时,最大化权值之和,即求 awj+bwk 的最大值。

  • ayj<byk
  • \((ax_j<L_i\land bx_k>R_i)\lor(ax_j>L_i\land bx_k<R_i)\)
    (N<=1e5,Q<=5e5,所有横坐标互不相同,所有纵坐标互不相同)

先考虑第一条限制,对于每个黑点 i,找 w 最大能匹配的白点 j,形成平面 P 上的点 (i,j)。对于每个白点也是。可以分治。

第二条限制,或运算符的两边其实差不多。

第二条限制的或运算符的意义远不止于此。它使平面 P 上至少有一点被选且是答案,这使这道题成为了撅世郝题。