标签:play spl 状态 isp 不能 containe 复杂度 分类 other
做一大堆DP
算法一
设 \(f_i\) 在 \(i\) 时间发车,发车时等待的时间和的最小值。则显然有:
对于每个 \(f_i\),当在 \(i\) 时刻时发第一班车,\(f_i\)最大,则其初始值为:
为保证载上所有人,最后一班车需在 \([t_{max}, t_{max}+m)\)内发车,则:
前缀和优化,设 :
对于上式中的 \(\sum\limits_{j < t_k \le i}{i-t_k}\),有:
替换状态转移方程。
优化转移方程,对于状态转移方程:
显然,若 \(j\le i-2m\),则在 \(j+m\) 时刻可多发一班车,不影响在 \(i\) 时刻发车,且答案不会变劣。
即:停车时间 \(i- (j+m) < m\)。
故转移方程可替换为:
减去无用状态。
若 \(cnt_i=cnt_{i-m}\),说明时间段 \([i-m,i]\)内没有需要坐车的人。
则在 \(i-m\) 时刻发车,在 \(i\) 时刻不发车,不会使答案变劣,\(f_i\) 是一个无用状态。
则可将状态转移方程改为:
\(f_i = \begin{cases}f_{i-m} &cnt_i=cnt_{i-m}\\ \min_{i-2m\le j\le i-m}(f_j + (cnt_i-cnt_j)\times i - (pos_i-pos_j))& \text{otherwise}\end{cases}\)
当满足 \(t_i = t_{i-1}+m\) 时,有用的位置最多,为 \(nm\) 个。
复杂度 \(O(nm^2 + t)\),期望得分 \(100\text{pts}\)。
算法二
由算法一,停车时间 \(i- (j+m) < m\)。
车往返一次时间 \(m\),则人等车时间 \(< 2m\)。
设 \(f_{i,j}\) 表示第 \(i\) 个人,等待时间为 \(j\),且前 \(i\) 个人已到达的时间最小值。
初始值 \(f_{1,i} = i\)。
分类讨论:
复杂度 \(O(nm^2)\),期望得分 \(100\text{pts}\)。
题目要求:
给定一个长度为 \(n\) 的环,填入 金色或绿色。
不能有两个相邻的绿色。
多组数据, \(T\le 10, n\le 10^{18}\)
矩阵加速模板。
设 \(f_{i,0/1}\) 为当前填到第 \(i\) 位,第一个位置为 金色/绿色 的合法方案数。
分成第一个位置为 绿/金讨论:
状态转移方程:
\(f_{i,0} = f_{i-1,0} + f_{i-1,1}\)
\(f_{i,1} = f_{i-1,0}\)
复杂度 \(O(Tn)\),期望得分 \(\text{60pts}\)。
上式显然可矩阵加速,转移矩阵如下:
复杂度 \(O(T\log n)\),期望得分 \(\text{100pts}\)。
代码 P4910 【帕秋莉的手环】 - Luckyblock
标签:play spl 状态 isp 不能 containe 复杂度 分类 other
原文地址:https://www.cnblogs.com/luckyblock/p/13121167.html