IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 牛客数据结构专题班WeekⅠ 前缀和练习 -> 正文阅读

[数据结构与算法]牛客数据结构专题班WeekⅠ 前缀和练习

前缀和,狭义的理解是 f [ n ] = ∑ i = 1 n g [ i ] f[n]= \sum_{i=1}^{n}g[i] f[n]=i=1n?g[i]这样一个把前面所有的值都加起来的一种操作,方便区间和进行查询,但是通过进一步的了解,前缀和可以用来表示前面的操作都进行完,之后通过某种操作消除前面某一段的影响,进而求得某段区间操作之后的总影响。

这样干说似乎有点抽象,借助第一场的几个题来进一步讲一下,也当作改题的一篇blog吧
AC个数:9/10
传送门
过于简单的就不写了,反正我会的我队友肯定都会

  1. 矩阵乘法优化dp(在数据结构课上你甚至可以写dp )
    题意
    我们首先考虑如果这是一道dp,不是那么多次询问怎么做呢?
    很容易得出以下的状态转移方程:
    d p [ i ] [ 0 ] = d p [ i ? 1 ] [ 0 ] + d p [ i ? 1 ] [ 1 ] d p [ i ] [ 1 ] = d p [ i ? 1 ] [ 1 ] + d p [ i ? 1 ] [ 0 ] dp[i][0]=dp[i-1][0]+dp[i-1][1]\\ dp[i][1]=dp[i-1][1]+dp[i-1][0] dp[i][0]=dp[i?1][0]+dp[i?1][1]dp[i][1]=dp[i?1][1]+dp[i?1][0]
    如果有一种从左面的楼到右面的楼的楼梯,那么第一个式子的后一项就有,第二个式子同理,但这题有多组询问,我们观察上面的状态转移方程:这个是一个矩阵的形式:如果有一个从左到右的楼梯的话,可以化成以下的矩阵
    [ 1 1 0 1 ] \begin{bmatrix} 1 & 1\\ 0 & 1 \end{bmatrix} [10?11?]
    同理,如果存在一个从右到左的楼梯,那么可以化成以下的矩阵
    [ 1 0 1 1 ] \begin{bmatrix} 1 & 0\\ 1 & 1 \end{bmatrix} [11?01?]其中,这里的矩阵每个元素代表的意思分别为 f [ 0 ] [ 0 ] 代 表 从 左 面 到 左 面 f [ 0 ] [ 1 ] 代 表 从 左 面 到 右 面 f [ 1 ] [ 0 ] 代 表 从 左 面 到 右 面 f [ 1 ] [ 1 ] 代 表 从 右 面 到 右 面 f[0][0]代表从左面到左面\\f[0][1]代表从左面到右面\\f[1][0]代表从左面到右面\\f[1][1]代表从右面到右面 f[0][0]f[0][1]f[1][0]f[1][1]
    的方案数。之后可以利用前缀和的思想,把每个询问变成l逆矩阵乘以r的状态即可。
    代码如下:
    代码

2.前缀和的trick应用
题目:传送门
这个题看起来和前缀和没有任何关系,但是我们换一种想法,你对于l,r的操作,其实就是
让前l次操作变成0-9,这就是相当于一个映射,代码如下:
代码

3.前缀和与数学的结合:
前置数学知识点:最高次项为n次的多项式进行n+1次差分之后值为常数。
题目:传送门
如果暴力加入会必然超时的,但如果我们做差分,通过差分数组相加,那么时间将会非常优秀。代码如下:
代码
注意最后前缀和相减的时候需要注意一下矩阵乘法的顺序。

4.前缀和的数学贡献推导:
挖坑,yh给我讲完正解了,但实现得用NTT,学完NTT来补这道题呜呜

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-08-20 15:22:16  更:2021-08-20 15:23:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:41:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码