C
题面
二维平面上有N个红点,N个蓝点,红点在蓝点左下方(
x
r
e
d
<
x
b
l
u
e
,
y
r
e
d
<
y
b
l
u
e
x_{red}<x_{blue},y_{red}<y_{blue}
xred<xblue,yred<yblue)则两个点构成一个匹配,问最多能构成几组匹配(一个点不能在多组匹配中同时出现)
题解
官方:(贪心+二分+排序)
将2N个点按X轴排序,维护一个按y轴排序multiset,依次遍历2N个点:
- 红:加入multiset
- 蓝:二分找到set中最大的小于它y值的红点,贪心匹配
我:(二分图匹配裸题)
D
题面
长度为N的a,b数列,构成
N
2
N^2
N2的c数组,
a
i
+
b
j
=
c
k
a_i+b_j=c_k
ai+bj=ck,将
N
2
N^2
N2个数全部异或,输出最后的值
题解(思维+二分)
对于ans的每一位k单独求解,将a,b数组对
2
k
+
1
2^{k+1}
2k+1取模(因为只有
<
=
k
<=k
<=k 的位会对这位造成影响),然后对b数组排序,对于
a
i
+
b
j
a_i+b_j
ai+bj
在第k位得1有两种情况:(
T
=
2
k
T=2^k
T=2k)
- T ≤ a i + b j < 2 T T \le a_i+b_j<2T T≤ai+bj<2T
- 3 T ≤ a i + b j < 4 T 3T \le a_i+b_j <4T 3T≤ai+bj<4T
得到这个分析结果以后,对于每个 a i a_i ai二分求出排序后的b数组中满足上述情况的b的个数,最后根据个数得到ans的第k位值
E
题面
一个长度N的数列,你可以进行一下两个操作直到数列只剩一个元素为止
- 删除第一个或最后一个元素
- 选择一个不在两头的元素 a i a_i ai, a i = a i − 1 + a i + 1 a_i=a_{i-1}+a_{i+1} ai=ai−1+ai+1,并删除 a i − 1 和 a i + 1 a_{i-1}和a_{i+1} ai−1和ai+1
问最后留下的元素最大能是多少?
题解(思维)
最后的答案
a
n
s
=
a
b
1
+
a
b
2
+
.
.
.
+
a
b
k
ans=a_{b1}+a_{b2}+...+a_{bk}
ans=ab1+ab2+...+abk
题目的关键就是得看出来这个b数组每个元素奇偶性一样,这个很关键
- 删除操作,删除最后一个没有改变数组的奇偶性,删除第一个每个元素的奇偶性都发生了变化,所以相对奇偶性仍然不发生变化
- 2操作仍然没有改变相对奇偶性,原理比较难讲,可以挑几个数试一下
得到这条性质可以贪心的知道,假如所有的数都是正数的话就是比较奇数和与偶数和哪个大就取哪个,但是这道题有负数,稍微模拟几次就可以知道,我们完全可以跳着取奇数或者偶数,所以比较一下正数奇数和和正数偶数和就可以了
PS:当所有的数为负数的话,就特判一下取最大的负数
F
题面
对于有向图
G
(
U
,
V
)
G(U,V)
G(U,V),对于每条边询问,假如翻转这条有向边,整张图的强联通分量个数是否发生变化
题解
待更新