LR 8 Hello 戊戌 - 抢红包 题解
首先声明题面中加入 Moejy0viiiiiv 与本人无关。
由于本题的数据范围在样例造好之后又进行了更改,所以初始时题面中出现了与数据范围不符的样例,如果对您的做题产生影响,我深表歉意。
算法一
设 \(P(x,\ y)\) 为走到 \((x,\ y)\) 的概率,则所求即为 \(\sum_{x,\ y}\ P(xD,\ yD)\)。
由于 \(N\ \leq\ 10000\),所以直接按照 \(P(x,\ y)\ =\ P(x,\ y\ -\ 1)\ *\ A\ +\ P(x\ -\ 1,\ y)\ *\ B\) 转移即可。
时间复杂度 \(O(N^2)\)。
空间复杂度 \(O(N^2)\),可以使用滚动数组 \(O(N)\)。
可以通过第一个子任务,预计得分 \(9\) 分。
算法二
我们设 \(F_z(x)\ =\ \sum_{i\ =\ 0}^z\ P(i,\ z\ -\ i)\ *\ x^i\ mod\ (x^D\ -\ 1)\),那么有 \(F_z(x)\ =\ F_{z\ -\ 1}(x)\ *\ (Bx\ +\ A)\)。所求即为 \([x^0]\ \sum_{i}\ [iD\ \leq\ N]\ F_{iD}(x)\)。我们可以直接通过枚举 \(i\) 来计算。
时间复杂度 \(O(ND)\)。
空间复杂度 \(O(D)\)。
可以通过第二个子任务,结合算法一预计得分 \(21\) 分。
算法三
对 \(F\) 求和可以考虑通过倍增的思想进行。
我们另 \(H(x)\ =\ (Bx\ +\ A)^D\ mod\ (x^D\ -\ 1)\),\(SH_n(x)\ =\ \sum_{i\ =\ 1}^n\ H(x)\)。
有转移
\(SH_{n\ +\ 1}(x)\ =\ SH_n(x)\cdot H(x)\ +\ H(x)\),
\(SH_{2n}(x)\ =\ SH_n(x)\cdot H(x)^n\ +\ SH_n(x)\)。
时间复杂度 \(O(D^2 log N)\)。
空间复杂度 \(O(D)\)。
可以通过子任务二、三,结合算法一预计得分 \(48\) 分。
算法四
现在考虑有坑的情况。
在计算 \([x^0]\ \sum_{i}\ F_{iD}(x)\) 时,我们可以对一段连续的不包含坑的 \(x\ +\ y\) 的值的区间 \([l,\ r]\) 计算贡献。
如果我们能快速求出 \(F_l(x)\) ,那么就能将问题转化为无坑的情况了。
我们设 \(G_z(x)\ =\ \sum_{i\ =\ 0}^z\ P(i,\ z\ -\ i)\ *\ x^i\)。
如果能得到 \(G_l(x)\),就可以通过在原 \(F_l(x)\) 的对应位置上减去相应的值得到有坑情况下的 \(F_l(x)\)。
可以发现 \(G\) 的转移与 \(F\) 相同。
又由于所有坑 \(x\ \leq\ M\),所以只用维护 \(G(x)\ mod\ x^M\)。
如果使用算法二的计算方法,时间复杂度 \(O((D\ +\ M)N)\)。
空间复杂度 \(O(D\ +\ M)\)。
可以通过子任务二、四,结合算法一、三预计得分 \(56\) 分。
算法五
在算法三、四的基础上考虑如何快速计算 \(G_z(x)\)。
可以发现对于无坑区间 \([l,\ r]\),\(G_r(x)\ =\ G_l(x)\cdot (Bx\ +\ A)^{r\ -\ l}\ mod\ x^M\),\([x^i](Bx\ +\ A)^m\ =\ \binom{m}{i}\ B^i\ A^{m\ -\ i}\)。
可以通过一次多项式乘法进行转移。
时间复杂度 \(O(K(D\ log\ D\ +\ M\ log^2\ M)\ log\ N)\)。
空间复杂度 \(O(D\ +\ M)\)。
预计得分 \(100\) 分。
转载于:https://www.cnblogs.com/King-George/p/8460926.html
LR 8 Hello 戊戌 - 抢红包 题解相关推荐
- CF1245F Daniel and Spring Cleaning(等会了更新)
CF1245F Daniel and Spring Cleaning 题意: 给定l,r,求∑a=lr∑b=lr[a+b=a⊕b]\sum_{a=l}^{r}\sum_{b=l}^{r}[a+b=a⊕ ...
- 【CCCC】PAT : 团体程序设计天梯赛-练习集 L2 答案,题解,附代码
[CCCC]PAT : 团体程序设计天梯赛-练习集 L2 答案 鉴定完毕,全部水题 ヾ(•ω•`)o 知识点分类(32): 1.树锯结构(9):二叉树的存储,编号,遍历顺序转换,求深度,底层节点,从底 ...
- P3246 [HNOI2016]序列(查询l-r中所有区间的最小值之和)
多校时做到了查询区间l-r中所有区间的最大值与最小之和的题目,有好多细节不太会处理,去看题解发现是一道差不多的原题,于是打算先把原题补一下. 题解: ST表+单调栈+莫队 看到计算区间最小值之和,不难 ...
- Codeforces Round #640 (Div. 4)(ABCDEG题解)
文章目录 A. Sum of Round Numbers B - Same Parity Summands C - K-th Not Divisible by n D - Alice, Bob and ...
- 2017-2018 ACM-ICPC Asia East Continent League Final (ECL-Final) 题解(10 / 13)
2017-2018 ACM-ICPC Asia East Continent League Final (ECL-Final) 9题金 6题银 5题铜 题目比较简单,但是读题太难了- 比赛链接:htt ...
- Codeforces Round #694 (Div. 1 + Div2)(A ~ H,8题全,超高质量题解)【每日亿题】2021/2/1、2/2
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 [每日亿题]Codeforces Round #694 (Div. 1 + Div2)(A ~ ...
- 迟到的预备赛前练习赛题解
比赛地址 今年的SWPU预备队员选拔赛将于10月17号上午8点开始一直持续到下午6点(主要是考虑到17号周六有运动会),请大家自行选择时间参加比赛,预备队员预计选拔6~8人,取前排直接成为预备队员,来 ...
- 华东交通大学2017年ACM双基程序设计大赛题解
简单题 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Submissio ...
- 【题解】 [HEOI2016]排序题解 (二分答案,线段树)
题目描述 在2016年,佳媛姐姐喜欢上了数字序列.因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他.这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行 ...
- 牛客题霸 [ 判断一棵二叉树是否为搜索二叉树和完全二叉树] C++题解/答案
牛客题霸 [ 判断一棵二叉树是否为搜索二叉树和完全二叉树] C++题解/答案 题解: 搜索二叉树满足以下性质: 1.非空左子树的所以键值小于其根节点的键值 2.非空右子树的所有键值大于其根节点的键值 ...
最新文章
- 谷歌NIPS论文Transformer模型解读:只要Attention就够了
- Seurat包分析单细胞转录组数据代码
- [SOA征文]SOA如何起步?
- (转)oracle extent
- python单词大全-学Python必须背的42个常见单词
- # 20155337 2017-2018-1 《信息安全系统设计基础》第一周学习总结
- xxx钻石商城功能开发需求
- 新增国内mysql下载镜像
- 【Computer Organization笔记13】指令流水中的结构冲突和数据冲突
- Makefile、.mk、.bp、Blueprint、Soong、kati工具链的关系
- Cocos2d-x 3.X手游开发实例详解
- app具体介绍界面-01
- 上交所、深交所、中登结算的接口文档及下载链接
- js中的symbol详解
- 基于Python实现的机器人自动走迷宫
- 那个职员建议他们去计算机博物馆英语,第三单元重点句子
- Dev C++环境中使用OpenGL
- 在阿里云3万成交的 iot.xin 网站上线啦
- ios-唯一标识符及Keychain共享
- 2.flex 容器属性 flex-direction ,flex-wrap ,flex-flow