n阶前缀和 の 拆解】的更多相关文章

题意 给定一个长为\(n\)的序列\(a\),求出其\(k\)阶差分或前缀和.结果的每一项都需要对\(1004535809\)取模. 打表找规律 先看前缀和,设\(n=5\),\(k=4\),按照阶从小到大把\(a_1\)在每个位置出现的次数列出来: \[0阶:1,0,0,0,0\\ 1阶:1,2,3,4,5\\ 2阶:1,3,6,10,15\\ 3阶::1,4,10,20,35 \] 再把\(a_2\)的列出来可以发现就是\(a_1\)的表往后移了一位,所以第\(k\)阶前缀和第\(i\)位\…
前情回顾 前缀和的基础用法戳这里->传送门 众所周知,简单的前缀和解决的一般都是静态查询的问题,例如区间和.区间积等 操作的时候也很简单,就是根据需要来维护一个数组,每次查询的时候就用到tr[r] 与 tr[l - 1]这两个值来得出答案 例如: A 智乃酱的区间乘积 题目描述: 给你一个长度为n的数组tr,m次查询,每次查询给你 l 和 r ,问tr[l] 乘到 tr[r] 后对1e9+7取模是多少 思路: 用到了取模,且查询的时候还涉及到了除法,所以要用逆元,而又因为模数是素数,所以可以用费…
给定一个序列,求出这个序列的k阶前缀和,模998244353,n<=1e5. k阶前缀和可以看成一个一个n*k的平面上的二维行走问题. 第i项对第j项的贡献是从(i,0)走到(j,k)的NE Latice Path的方案数. 大力FFT一下即可.…
题面 传送门 题解 统计\(k\)阶前缀和,方法和这题一样 然后这里\(n\)比较大,那么把之前的柿子改写成 \[s_{j,k}=\sum_{i=1}^ja_i{j-i+k-1\choose j-i}=\sum_{i=1}^na_i{(j-i+k-1)^{\underline{j-i}}\over (j-i)!}\] 就可以化成卷积形式了 //minamoto #include<bits/stdc++.h> #define R register #define ll long long #de…
题面 传送门 题解 orz zzk 考虑这东西的组合意义 (图片来自zzk) \(a_i\)这个元素对\(k\)阶前缀和的第\(j\)个元素\(s_{k,j}\)的贡献就等于从\((0,i)\)走到\((j,k)\)的方案数(最开始的一次必须往下走,所以实际上是从\((1,i)\)走到\((j,k)\)的方案数) 那么\(s_{j,k}=\sum_{i=1}^ja_i{j-i+k-1\choose j-i}\) 直接\(O(n^2)\)递推就行了 //minamoto #include<bits…
5922. [NOIP2018模拟10.23]sequence (File IO): input:sequence.in output:sequence.out Time Limits: 1000 ms  Memory Limits: 524288 KB  Detailed Limits   Goto ProblemSet Description 小 F 是一位 Hack 国的居民,他生活在一条长度为 n 的街道上,这个街道上总共有 n 个商店.每个商店里售卖着不同的 Hack 技能包,每个商店…
丢分主要是下面几个方面: 1.T2代码交错了,有个特判没写丢了10分 2.T1线段树加等差数列写错了(其实二维差分就可以,但我当时不会) 3.T3思考再三还是为了10分写上了主席树,还是写错了 总体评价就是和正解没什么联系,暴力也没写满 T1:sequence 题目链接: http://172.16.0.132/senior/#contest/show/2535/0 题目: 小 F 是一位 Hack 国的居民,他生活在一条长度为 n 的街道上,这个街道上总共有 n 个商店.每个商店里售卖着不同的…
闲扯 考场看了眼题目感觉很难,一个小时敲完了所有暴力...嗯然后就在那里发呆什么事也没做 T3考场上把数据结构想了个遍都不会完成1操作,现在看这种思路其实之前也接触过... 比较玄学的一件事情就是T1一开始测得有40分结果过了会看爆0了,难不成被续走了(然而后面测了一下真的爆0了) 太菜了不讲了 T1 sequence 首先通过大佬博客了解一下\(k\)阶前缀和: https://blog.csdn.net/hrbust_cx/article/details/82431567 通过看那张图你会发…
2020牛客寒假算法基础集训营1 这套题整体来说还是很简单的. A.honoka和格点三角形 这个题目不是很难,不过要考虑周全,面积是1,那么底边的长度可以是1也可以是2, 注意底边1和2会有重复的,所以要注意去除这个重复部分的. #include<bits/stdc++.h> using namespace std; ; typedef long long ll; ; int main(){ ll n,m,ans=; scanf("%lld%lld",&n,&am…
众所周知,tzc 在 2019 年(12 月 31 日)就第一次开始接触多项式相关算法,可到 2021 年(1 月 1 日)才开始写这篇 blog. 感觉自己开了个大坑( 多项式 多项式乘法 好吧这个应该是多项式各种运算中的基础了. 首先,在学习多项式乘法之前,你需要学会: 复数 我们定义虚数单位 \(i\) 为满足 \(x^2=-1\) 的 \(x\). 那么所有的复数都可以表示为 \(z=a+bi\) 的形式,其中 \(a,b\) 均为实数. 复数的加减直接对实部虚部相加减就行了. 复数的乘…