
分治与递归
分治策略
m0_51303687
取乎其上,得乎其中;取乎其中,得乎其下;取乎其下,则无所得矣。
展开
-
做题记录2021.9.14 洛谷P3612奶牛密码
题目描述奶牛正在试验秘密代码,并设计了一种方法来创建一个无限长的字符串作为其代码的一部分使用。给定一个字符串,让后面的字符旋转一次(每一次正确的旋转,最后一个字符都会成为新的第一个字符)。也就是说,给定一个初始字符串,之后的每一步都会增加当前字符串的长度。输入第一行输入一个字符串。该字符串包含最多30个大写字母,并N≤1018N≤10^{18}N≤1018。第二行输入N。请注意,数据可能很大,放进一个标准的32位整数可能不够,所以你可能要使用一个64位的整数类型(例如,在C / C++ 中是 l.原创 2021-09-14 17:12:37 · 718 阅读 · 0 评论 -
做题记录2021.8.27 BribePrisoners
网上的动态规划代码看不懂,但思路差不多懂了,这里说一下我的想法。每释放一个囚犯,整个“监狱”就被分为两部分。因此可以使用分治的思路。每次将当前区间分为左右两段并求和,并取各种方法的最小值,最后加上区间长度即可。如果该区间内找不到需释放的囚犯,则直接返回区间长度。(以样例2为例)根据上图写出如下伪代码:solve(l,r): t=INF,found=false; for(遍历a,对于所有的a[i]∈[l,r]): found=true; t=min(t,solve(l,a[i]-1)+.原创 2021-08-27 11:23:45 · 78 阅读 · 0 评论