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 @   KK_SpongeBob  阅读(3)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
点击右上角即可分享
微信分享提示