本题主要考察最短路建模和动态规划的应用。 题意简单归纳为:通过交换两个数组位置相对应的元素,使得第一个数组降序、第二个数据升序的最少交换次数是多少。如果无法达成条件,返回 -1。 20 分的做法 由于 ,我们可以通过二进制枚举每一对位置是否交换,然后跑一遍 的检查看看是否符合要求即可,时间复杂度 ,能够通过。 60 分的做法 如果我们从左往右看作从第一个点出发,走到尾,能生成两条完全对称的路径,那我们就找到了可以走通的办法。所以,我们的问题就变成了寻找一种决策方法,来找到能否生成这样的一条路径且消费最低。 我们先来考虑什么情况下可以交换。 上图的两种情况给我们带来了两个不等式组:满足 B...