csps模拟测试64

  题好难。。仨暴力。

  T1:trade

  对于DP加入大脸优化

  反悔贪心。

  首先就是对于用堆维护的贪心。

  把之前没买也没卖以及可能要反悔的加入一个堆,对于当前点,查询有没有比他自己小的,如果有那么此时交易一定赚,

  问题在于赚得够不够多,所以我们就可以把2个他自己插入堆,以供反悔,在也就是ai-aj+aj-ak然后我的中间点j就消掉了,

  并且如果在以后如果用j,一定先用j反悔,在用j买入,因此不会多算j。

  T2:sum

  两个柿子,后一个差一点就推出来了,推出来就正解了。

  $S_n^m=sum limits_{i=0}^m C_n^i$

  首先它叫前缀和,对于前缀和一定有$S_n^m=S_n^{m-1}+C_n^m$它实现了单点移动m,

  那有没有单点移动n的?

  $S_{n-1}^m=sum limits_{i=0}^{m}C_{n-1}^i$

  加起来,由组合数递推式得,$S_n^m=S_{n-1}^{m-1}+S_{n-1}^m$

  然后发现两项之间有关系,

  直接用单点移动m的代入即可。

  实现了n,m的单点移动,莫队可以水过。

  T3:building

  额嗯嗯,这题叫啥呢。。。并查集+STL?

  恩对调就完了

原文地址:https://www.cnblogs.com/starsing/p/11648562.html