1340. 跳跃游戏 V;2039. 网络空闲的时刻;2767. 将字符串分割为最少的美丽子字符串

1340. 跳跃游戏 V

核心思想:动态规划记忆化搜索。定义dfs(i),表示从i开始最多可以访问多少个下标,然后统计往左跳和往右边跳的最大值,思路其实比较简单,但是代码我感觉还是不太好想。

1340. 跳跃游戏 V;2039. 网络空闲的时刻;2767. 将字符串分割为最少的美丽子字符串_第1张图片

2039. 网络空闲的时刻

核心思想:我们需要找到每个服务器变为空闲的最短时间,然后维护一个最大值。得到一个结论:每个服务器与0服务器的最短距离为d,根据 2*d与p即与重复发送的关系可以得到,其变为空闲时间为2*d-t+1+2*d即4*d-t+1(这部分可以看灵神的题解我就不赘述了),然后如何求每个服务器到0服务器的距离,这里用BFS,即从0开始扩散。

1340. 跳跃游戏 V;2039. 网络空闲的时刻;2767. 将字符串分割为最少的美丽子字符串_第2张图片

2767. 将字符串分割为最少的美丽子字符串

核心思想:记忆化搜索,有点类似分割字串,dfs(i):表示从i开始分割需要的最少数目,然后枚举下次分割的结束位置,维护一个最小值即可,枚举的字串是预先处理好的即,5的幂次。

1340. 跳跃游戏 V;2039. 网络空闲的时刻;2767. 将字符串分割为最少的美丽子字符串_第3张图片

你可能感兴趣的:(python,算法)