模拟测试92
T1:
显然每个数是独立的。
无解情况的判定用裴蜀定理即可
用$ex_gcd$求出一组特解,对于每个数,只需要求出使$|x|+|y|$最小的一组解即可。
最优解一定取在$x$或$y$接近$0$时,取个$min$即为答案。
时间复杂度$O(n)$。
T2:
根据贪心思想。
考虑两个数对$(a_i,b_i)$和$(a_j,b_j)$,如果$a_i<b_j$并且$b_i<a_j$,那么我们希望$i$排在$j$前面。对于相反的情况,我们希望$j$排在$i$前面。其余两种情况$i$和$j$以任意顺序排列都是相同的。显然按$a+b$从小到大排列就可以满足所有的需求。
设DP状态为选择的$a_i$的最大值为$j$时的最优值,更新时只涉及单点插入和区间加,用线段树维护DP数组即可。
时间复杂度$O(nlogn)$。
T3:
跑多元最短路,并记录由哪个源点更新。
枚举每条边,如果两侧的前驱不同,则用这条路径更新两个前驱的答案。
时间复杂度$O(mlogn)$。