mikufun-hzoi-cpp

$T1:trade$

上来一眼有显然的$01$背包

发现$dp $柿子没有办法优化,我们先抛开$dp$不看,观察一下这题的性质

假使我们在$a$点买入,$b$点卖出,再在$b$点买入,$c$点卖出,等价于在$a$点买入,$c$点卖出

发现这个之后我们就可以直接反悔贪心了

复杂度$O(nlogn)$

 

$T2:sum$

考场上一度不敢打233

观察$S$函数

$$S_{n,m}=\sum_{i=0}^{m}C_{n}^{i} $$

我们根据组合数递推式(杨辉三角)可以发现

$$S_{n,m}=S_{n,m-1}+C_{n}^{m}$$

$$S_{n,m+1}=S_{n,m}\times 2-C_{n}^{m}$$

然后发现这个东西可以用莫队来搞

复杂度$O(n \sqrt n)$

 

$T3:building$

我当你是数据结构,你竟然是个大模拟?!?!

如果我们把所有相接的块用并查集合并,那么答案就是块数-连接次数

那么我们一行一行地合并所有块,就可以求出每一行的答案

寻找和一个块相接的块时,可以用$vector$来$lower$_$bound$(当然暴力也能过

复杂度$O(nlogn)$

 

 

$\Huge脸$$\Huge巨$

分类:

技术点:

相关文章:

  • 2021-12-15
  • 2021-12-15
  • 2021-12-04
  • 2022-01-02
  • 2021-12-15
  • 2021-12-04
  • 2021-12-04
  • 2021-12-04
猜你喜欢
  • 2022-12-23
  • 2022-02-25
  • 2021-12-15
  • 2021-12-15
  • 2021-12-15
  • 2021-12-04
相关资源
相似解决方案