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
本人(KK_SpongeBob)蒟蒻,写不出好文章,但转载请注明原文链接:https://www.cnblogs.com/OIer-QAQ/p/18575267
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期