很容易想到 dp,考虑到要求字典序最下,所以还需要贪心。
设 dp[i][k] 表示第 i 个人复制前 k 本书所需的最小时间,j 表示上一个人做完后的书的下一本,那么,我们很容易想到这样一个方程 dp[i][j]=min(dp[i][j],max(dp[i−1][j−1],sk−sj−1)),其中 sk−sj−1 表示从上一个人复制的最后一本书开始,到当前这个人复制的最后一本数结束,所需要的时间,si 表示复制前 i 本书所需的时间之和。该方程表示,当前这个人所需要的最短时间是他本来需要的时间和上一个人复制后他复制所需的时间,因为 n 极小,所以暴力枚举即可,若 n 较大,则需考虑斜率优化、四边形不等式优化等 dp 优化方式。
直接这样能更快: ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
你怎么才切到 E 捏
strncat_s这类函数对参数中的长度类的参数也是有大小限制的, 官方文档中却没有明说, 是个坑.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下