模拟测试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)$。

posted @ 2019-10-29 17:24  hz_Rockstar  阅读(140)  评论(0编辑  收藏  举报