T
1
T1
T1 排序,
T
2
T2
T2 读优顺便膜
T
3
T3
T3 ,题意:一般图最大独立集,
n
<
=
100
,
m
<
=
3000
n<=100, m<=3000
n<=100,m<=3000
解:一直没有思路,结果最后翻 std 发现是 dfs 气得要死
但也不是毫无收获,询问 zxy 哥哥后发现有一种值得学习的乱搞法
每次
r
a
n
d
o
m
s
h
u
f
f
l
e
randomshuffle
randomshuffle,从前面开始选,如果有限制就不选了,然后大概可以做
1
e
4
1e4
1e4次趋近正解
T
4
T4
T4,题意:两个数列两两相乘求第 k 大,
n
<
=
1
e
4
n <= 1e4
n<=1e4
解:二分 k,check 的时候继续二分
T
5
T5
T5,题意:给 n 条线段,求两两不相交能覆盖的最大值,
n
<
=
5000
n<=5000
n<=5000
解:很明显要么按左端点排,要么按右端点排,不妨就按右端点排了吧,考虑DP
f
i
f_i
fi 表示到 i 的最长覆盖,
f
i
=
m
a
x
(
f
j
)
(
e
d
j
<
s
t
i
)
+
l
e
n
i
f_i = max(f_j)(ed_j < st_i)+len_i
fi=max(fj)(edj<sti)+leni
然后 n 可以出到
1
e
5
1e5
1e5用树状数组维护一下
T
6
T6
T6,一个图,割掉一些点,使剩下的最大连通块
s
i
z
<
n
/
2
siz < n/2
siz<n/2,
删去的最大点为 k, 求 k 的最小值,
n
<
=
1000
n<=1000
n<=1000
解:二分可以过,但是每次并查集要重新插,发现可以倒着来,每次插进去,如果
m
x
s
i
z
>
=
n
/
2
mxsiz >= n/2
mxsiz>=n/2那么当前的就是答案了
喜闻乐见的毒瘤测试 19/09/12
最新推荐文章于 2022-07-14 15:22:07 发布