CF 553E Kyoya and Train
题目分析
期望\(\text{dp}\)。
设\(f_{i,j}\)表示在第\(j\)个时刻从\(i\)点出发,到达终点的期望花费。
有转移方程:
\[
f_{x,t}=\min_{(x,y)\in E}(c_{x,y}+\sum_{i=1}^Tp_{y,i}\cdot f_{y,i+t})
\]
如果直接转移,时间复杂度是\(O(n \cdot T^2)\)。
考虑如何优化。
冷静分析发现,\(\sum\limits_{i=1}^Tp_{y,i}\cdot f_{y,i+t}\)可以化成卷积形式。
设\(g_{y,t}=\sum\limits_{i=1}^Tp_{y,i}\cdot f_{y,i+t}\)。
如果我们已知\(f_{y,i}(i\ge t)\),那么我们可以\(O(m\cdot T\cdot \log T)\)算出\(f_{y,i}(i\ge t)\)对\(g_{y,t}\)的贡献。
如果我们倒着枚举时间\(t\),边dp边算贡献,每个时间\(t\)会计算贡献\(O(T)\)次,时间复杂度是\(O(m\cdot T^2\cdot \log T)\)。
考虑分治\(\text{fft}\)。
每次分治区间\([l,r]\),处理完右区间后,统计右区间对左区间的贡献,再处理左区间。
时间复杂度\(O(m\cdot T\cdot \log T)\),可以接受。
有点卡常,需要手写\(\text{complex}\)。
CF 553E Kyoya and Train的更多相关文章
- [Codeforces 553E]Kyoya and Train(期望DP+Floyd+分治FFT)
[Codeforces 553E]Kyoya and Train(期望DP+Floyd+分治FFT) 题面 给出一个\(n\)个点\(m\)条边的有向图(可能有环),走每条边需要支付一个价格\(c_i ...
- CodeForces 553E Kyoya and Train 动态规划 多项式 FFT 分治
原文链接http://www.cnblogs.com/zhouzhendong/p/8847145.html 题目传送门 - CodeForces 553E 题意 一个有$n$个节点$m$条边的有向图 ...
- ●codeforces 553E Kyoya and Train
题链: http://codeforces.com/problemset/problem/623/E 题解: FFT,DP 题意: 一个有向图,给出每条边的起点u,终点v,费用c,以及花费每种时间的概 ...
- Codeforces 553E Kyoya and Train
题目大意 链接:CF533E 给一张\(n\)个点,\(m\)条边的图,起点\(1\)终点\(n\),如果不能在\(T\)的时间内到达则需支付\(X\)的代价. 走每条边都会支付一定代价,经过一条边\ ...
- 【CF553E】Kyoya and Train 最短路+cdq分治+FFT
[CF553E]Kyoya and Train 题意:有一张$n$个点到$m$条边的有向图,经过第i条边要花$c_i$元钱,经过第i条边有$p_{i,k}$的概率要耗时k分钟.你想从1走到n,但是如果 ...
- CF553E Kyoya and Train
Kyoya and Train 一个有\(n\)个节点\(m\)条边的有向图,每条边连接了\(a_i\)和\(b_i\),花费为\(c_i\). 每次经过某一条边就要花费该边的\(c_i\). 第\( ...
- 【codeforces 553E】 Kyoya and Train
http://codeforces.com/problemset/problem/553/E (题目链接) 艹尼玛,CF还卡劳资常数w(゚Д゚)w!!系统complex被卡TLE了T_T,劳资写了一天 ...
- 再探快速傅里叶变换(FFT)学习笔记(其三)(循环卷积的Bluestein算法+分治FFT+FFT的优化+任意模数NTT)
再探快速傅里叶变换(FFT)学习笔记(其三)(循环卷积的Bluestein算法+分治FFT+FFT的优化+任意模数NTT) 目录 再探快速傅里叶变换(FFT)学习笔记(其三)(循环卷积的Blueste ...
- 多项式 之 快速傅里叶变换(FFT)/数论变换(NTT)/常用套路【入门】
原文链接https://www.cnblogs.com/zhouzhendong/p/Fast-Fourier-Transform.html 多项式 之 快速傅里叶变换(FFT)/数论变换(NTT)/ ...
随机推荐
- angularjs ui-grid cellTemplate checkbox ng-checked
{ name: '@Localizer["ActiveInd"]', field: 'ActiveInd', enableSorting: false, ...
- 使用FileSystemWatcher监视指定目录
使用 FileSystemWatcher 监视指定目录中的更改.可监视指定目录中的文件或子目录的更改. 以下是一个简单的实例,用来监控指定目录下文件的新增.删除.重命名等情况(文件内容更改会触发多次, ...
- 验证是否是正整数,是否是mail,是否是正确的身份证
/// <summary> /// 通用验证类 /// </summary> class DataValidate { /// <summary> /// 验证正整 ...
- android RecyclerView简单的使用
转自:https://blog.csdn.net/lmj623565791/article/details/45059587 概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了, ...
- c# 根据父节点id,找到所有的子节点数据
转自:https://blog.csdn.net/q107770540/article/details/7708418 查的是表 Model_info中父节点为p_id时找到所有的子节点的集合 //通 ...
- K:栈和队列的比较
栈和队列的相同点: 都是线性结构,即数据元素之间具有"一对一"的逻辑关系 都可以在顺序存储结构和链式存储结构上进行实现 在时间代价上,插入和删除操作都需常数时间:在空间代价上,情况 ...
- java io简单使用
public class CreateFile { public static void main(String[] args) { /* * 文件夹的创建和文件的生成 */ File f1 = ne ...
- python Tensorflow 实现图像的卷积处理
1.convolution.py import numpy as np from sklearn.datasets import load_sample_images import tensorflo ...
- php中怎么理解Closure的bind和bindTo
bind是bindTo的静态版本,因此只说bind吧.(还不是太了解为什么要弄出两个版本) 官方文档: 复制一个闭包,绑定指定的$this对象和类作用域. 其实后半句表述很不清楚. 我的理解: 把一个 ...
- JQuery 更改属性 JQ对象循环 each 全选反选 三元运算
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...