10.15_

 

 

A. 导弹袭击

单调栈维护下凸包,凸包还没有学懂,一定有时间把凸包学懂!(立flag)

 Upd20191017:凸包学习笔记

 

B. 炼金术士的疑惑

利用高斯消元巧妙解决问题。

其实还是高斯消元,不同的是你最后似乎并不能求出来所有的元素,然后我就放弃了。

其实因为数据已经保证了答案有解,那么这个方程式一定可以线性被给出的方程式表出。

那么还是高斯消元就好啦,只不过最后的求解方程式不参与主元,只参与消元的过程唔。

B. 炼金术士的疑惑

暴力算法:二分t然后$O(nlog n)$统计LIS。

正解:

考虑这个位置能被转移的最大位置他们的LIS是相同的,不妨将LIS的长度视为深度。

那么每个位置只会被最优的一个位置转移,并且转移后LIS长度是它的LIS长度+1。那不就是树型结构了吗。

t的最优解依旧是二分找到,考虑如何构造最优方案。

考虑我们现在已知最大的t了,开始LIS的转移,我们的目的是让整个序列的字典序最小,那么对于能够转移的两个点,考虑它们的序列的关系。

就是lca前是相同的,从lca之后就不同了。那么我们就可以通过比较从lca(开区间)开始到这两个位置的最小值来决策。容易发现最小值一定不相等,也就是说一定有大小关系。

你可能感兴趣的:(10.15_)