首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
CF1067D. Computer Game(斜率优化+倍增+矩阵乘法)
】的更多相关文章
[CF1067D]Computer Game[凸包/斜率优化+倍增+矩阵乘法]
题意 你有 \(n\) 个任务,初始收益为 \(a\) ,共 \(t\) 轮游戏,每轮可以选择完成一个任务(可以做多次),完成之后可以给任意任务升级,升级之后的任务收益为 \(b\) ,每个任务还有完成的概率 \(p\) ,问期望最大收益是多少. \(n\leq 10^5,1\leq a< b\leq 10^8,t\leq 10^9\) 分析 一个重要而显然的结论是如果我们有了一次升级的机会,一定升级 \(b*p\) 最大的那一个,之后一直选择完成这个任务,记 \(M\) 表示最大的 \(b*p…
CF781D Axel and Marston in Bitland [倍增 矩阵乘法 bitset]
Axel and Marston in Bitland 好开心第一次补$F$题虽然是$Div.2$ 题意: 一个有向图,每条边是$0$或$1$,要求按如下规则构造一个序列然后走: 第一个是$0$,每次复制当前序列,取反后贴在后面 如:$0,01,0110,01101001,...$ 注意走的是$01101001$而不是$0 01 0110 01101001$ 一开始读错题了然后郁闷了好久.... 求最多走几次,如果$> 1e18$就输出$-1$ (1 ≤ n ≤ 500, 0 ≤ m ≤ 2n^…
【loj2325】「清华集训 2017」小Y和恐怖的奴隶主 概率dp+倍增+矩阵乘法
题目描述 你有一个m点生命值的奴隶主,奴隶主受伤未死且当前随从数目不超过k则再召唤一个m点生命值的奴隶主. T次询问,每次询问如果如果对面下出一个n点攻击力的克苏恩,你的英雄期望会受到到多少伤害. 输入 输入第一行包含三个正整数 T,m,k ,T 表示询问组数,m,k 的含义见题目描述. 接下来 T 行,每行包含一个正整数 n ,表示询问进行 n 次攻击后扣减Boss的生命值点数的期望. 输出 输出共 T 行,对于每个询问输出一行一个非负整数,表示该询问的答案对 998244353 取模的结果.…
倍增&矩阵乘法 专题复习
倍增&矩阵乘法 专题复习 PreWords 这两个基础算法我就不多说啦,但是还是要介绍一下" 广义矩阵 "乘法 其实就是把矩阵换成取\(max\),然后都一样... 据神仙LBC说:这不显然是对的吗! \[ \ \] \[ \ \] [usaco2007 Nov] relays 奶牛接力跑 离散一下,然后套矩阵乘法\(a[i][j]\)记录从\(i\)出发到\(j\)的最小答案,快速幂即可 const int N=410,P=1e4+7; int n,m,s,t; int a[…
4.28 省选模拟赛 负环 倍增 矩阵乘法 dp
容易想到 这个环一定是简单环. 考虑如果是复杂环 那么显然对于其中的第一个简单环来说 要么其权值为负 如果为正没必要走一圈 走一部分即可. 对于前者 显然可以找到更小的 对于第二部分是递归定义的. 综上 这个环是一个简单环. 那么最多有n个点. 考虑枚举起点 然后 设f[i][j][k]表示从i到j经过k条边的最短路. 容易发现最终的答案为 f[i][i][w]<0 w. 不过这样做是n^4的. 考虑优化 容易想到二分 而上述状态其实本质上是一个矩阵乘法. 那么我们可以矩阵乘法在n^3logn的…
Codeforces 576D - Flights for Regular Customers(bitset 优化广义矩阵乘法)
题面传送门 题意: 有一张 \(n\) 个点 \(m\) 条边的有向图,你初始在 \(1\) 号点,边上有边权 \(c_i\) 表示只有当你经过至少 \(c_i\) 条边的时候你才能经过第 \(i\) 条边. 求从 \(1\) 号点开始最少走过多少条边才能到达 \(n\) 号点. \(n,m \leq 150,c_i\leq 10^9\) 注意到题目中 \(c_i\) 的数据范围可以达到 \(10^9\),我们显然不能一步步枚举可达的位置. 但是 \(m\) 的数据范围很小,说明转移矩阵最多改变…
【POJ3613】Cow Relays 离散化+倍增+矩阵乘法
题目大意:给定一个 N 个顶点,M 条边的无向图,求从起点到终点恰好经过 K 个点的最短路. 题解:设 \(d[1][i][j]\) 表示恰好经过一条边 i,j 两点的最短路,那么有 \(d[r+m][i][j]=min\{d[r][i][k]+d[m][k][j] \}\),等价于矩阵乘法. 这道题 K 很大,可以用快速幂加速矩阵乘法. 代码如下 #include <cstdio> #include <algorithm> #include <memory.h> us…
CF1067D. Computer Game(斜率优化+倍增+矩阵乘法)
题目链接 https://codeforces.com/contest/1067/problem/D 题解 首先,如果我们获得了一次升级机会,我们一定希望升级 \(b_i \times p_i\) 最大的任务,并且之后只完成该任务,这样才能使得期望收益最大.换句话说,当我们完成成功了一次任务之后,决策就固定了.因此,我们实际需要考虑的是还未完成任何任务时的决策. 为了方便,我们记 \(\max\limits_{1 \leq i \leq n}\{b_ip_i\}\) 为 \(m\). 我们设 \…
Codeforces 1067D - Computer Game(矩阵快速幂+斜率优化)
Codeforces 题面传送门 & 洛谷题面传送门 好题. 首先显然我们如果在某一次游戏中升级,那么在接下来的游戏中我们一定会一直打 \(b_jp_j\) 最大的游戏 \(j\),因为这样得到的期望收益最大. 因此我们设 \(dp_i\) 表示还剩 \(i\) 秒并且当前没有升级过的最大收益. 那么有 \(dp_i=\max\limits_{j}\{dp_{i-1}(1-p_j)+X(i-1)p_j+p_ja_j\}\),其中 \(X=\max\{b_jp_j\}\). 稍微解释一下上面的转移…
poj3613:Cow Relays(倍增优化+矩阵乘法floyd+快速幂)
Cow Relays Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7825 Accepted: 3068 Description For their physical fitness program, N (2 ≤ N ≤ 1,000,000) cows have decided to run a relay race using the T (2 ≤ T ≤ 100) cow trails throughout…