7.31考总

T4

其实我们的目标是让下降的往前排,让上升的往后排,其余不变,所以标记一下不变的,记录一下上升与下降的,在挨个放进ans数组中,最后输出。

T5

将a数组排序,那么现在将a数组两个分为一组分给一个人即为最优策略。

dp[i][j]:前i根木棍分给j个人的矛盾指数最小值

方程:

将第i根木棍分给第j个人:dp[i-2][j-1]+(a[i]-a[i-1])^2

不将第i根木棍分给第j个人:dp[i-1][j]

边界: 将任何木棍分给第0个人一定是0,所以dp[1~m][0]=0;

T6

可以发现,如果将操作a与操作b进行对比,则3a=2b,a:b=3:2

我们可以选出一个步数c,使得a:b:c=3:2:1,每次用c去做操作即可

计算可知c操作是2x+1,所以每次判断pos是否为0,为0就是找到了答案,否则就继续更新pos,由于c操作是b操作的3倍,所以最多应该枚举300000次。

最后的答案是step(步数,这里记录跳了多少次)/3+1

posted @ 2024-08-01 11:59  KK_SpongeBob  阅读(14)  评论(0)    收藏  举报  来源