A. 导弹袭击
单调栈维护下凸包,凸包还没有学懂,一定有时间把凸包学懂!(立flag)
Upd20191017:凸包学习笔记
B. 炼金术士的疑惑
利用高斯消元巧妙解决问题。
其实还是高斯消元,不同的是你最后似乎并不能求出来所有的元素,然后我就放弃了。
其实因为数据已经保证了答案有解,那么这个方程式一定可以线性被给出的方程式表出。
那么还是高斯消元就好啦,只不过最后的求解方程式不参与主元,只参与消元的过程唔。
B. 炼金术士的疑惑
暴力算法:二分t然后$O(nlog n)$统计LIS。
正解:
考虑这个位置能被转移的最大位置他们的LIS是相同的,不妨将LIS的长度视为深度。
那么每个位置只会被最优的一个位置转移,并且转移后LIS长度是它的LIS长度+1。那不就是树型结构了吗。
t的最优解依旧是二分找到,考虑如何构造最优方案。
考虑我们现在已知最大的t了,开始LIS的转移,我们的目的是让整个序列的字典序最小,那么对于能够转移的两个点,考虑它们的序列的关系。
就是lca前是相同的,从lca之后就不同了。那么我们就可以通过比较从lca(开区间)开始到这两个位置的最小值来决策。容易发现最小值一定不相等,也就是说一定有大小关系。