$\boldsymbol{T1:trade}$
上来一眼有显然的01背包
发现$dp $柿子没有办法优化,我们先抛开dp不看,观察一下这题的性质
假使我们在a点买入,b点卖出,再在b点买入,c点卖出,等价于在a点买入,c点卖出
发现这个之后我们就可以直接反悔贪心了
复杂度$\boldsymbol{O(nlogn)}$
$\boldsymbol{T2:sum}$
考场上一度不敢打233
观察s函数
$$S_{n,m}=\sum_{i=0}^{m}C_{n}^{i} $$
扫描二维码关注公众号,回复:
7435956 查看本文章
我们根据组合数递推式(杨辉三角)可以发现
$$S_{n,m}=S_{n,m-1}+C_{n}^{m}$$
$$S_{n,m+1}=S_{n,m}\times 2-C_{n}^{m}$$
然后发现这个东西可以用莫队来搞
复杂度$\boldsymbol{O(n\sqrt n)}$
$\boldsymbol{T3:building}$
我当你是数据结构,你竟然是个大模拟?!?!
如果我们把所有相接的块用并查集合并,那么答案就是块数-连接次数
那么我们一行一行地合并所有块,就可以求出每一行的答案
寻找和一个块相接的块时,可以用$vector$来$lower$_$bound$(当然暴力也能过
复杂度$\boldsymbol{O(nlogn)}$