2019.10.16题解

写在前面:

这套题无论是从题型还是解题思路上都挺不错的,但自己还是太菜了,T1都不会正解。

A. 导弹袭击

标签:

单调栈维护凸包

题解:

从$ O(n^2) $的暴力可以看出,我们关注的只是A与B的比值,

所以对于每一个导弹来说t=x/a[i]+b[i],

是一个一次函数,要求求每个位置最小的函数值,

考虑先将导弹按1/a[i]降序排序,之后用单调栈维护一个上凸包。

需要特别注意交点一样和交点<0的情况

B. 炼金术士的疑惑

标签:

高斯消元

题解:

我打的不是正解,所以在这里就口胡一下正解啦:

首先题目保证方程有解,考虑把每个方程设为未知量,

高斯消元出来一定是这样的:

对于每个在系数矩阵中非0的物质来说,都可以让一个式子对最终式子产生贡献,

魔改一下高斯消元即可

C. 老司机的狂欢

标签:

构造,LIS,倍增

题解:

显然时间满足单调性,然而check比较难想:

先把所以车按pos排序,之后O(n)处理所以车的最终位置

对于第一问,就是以最终位置为序列的LIS

对于第二问,把LIS的决策森林(深度为Dp值,i的父亲是i的决策点,树点的val为原车的id)建出来,

考虑两个Dp值相同的决策点i,j:

设i,j的lca为x,那我们一定选i->x和j->x的路径的最小权值较小的一个,倍增lca维护即可

原文地址:https://www.cnblogs.com/AthosD/p/11685727.html