基础讲解:
- https://blog.csdn.net/weixin_72060925/article/details/127835303
前缀和:
- 模版题:https://www.luogu.com.cn/problem/P8218
- 二维前缀和:https://www.luogu.com.cn/problem/P2004
- 前缀和应用:https://www.luogu.com.cn/problem/T430521
- 重点是将题目转换为前缀和。
- 子串满足“0和1两种字符的个数相等”,将0变为-1,相当于区间和为0;
- 区间和为0 相当于s[r+1]=s[l]
- 采用下标法统计不同前缀和结果数量,然后计算组合数相加
- 前缀和应用二:https://www.luogu.com.cn/problem/T430522
- 方法一:计算所有k的前缀和,要点:使用vector,效率nlogn
- 其他解法,核心是要让循环里面的计算尽量少:j初始化放在外面,while替换if
#include<bits/stdc++.h> using namespace std; int a[100005]; long long q,l,r,k,n,result; int main() { cin>>n>>q; for(int i=1;i<=n;i++) { cin>>a[i]; } for(int i=0;i<q;i++) { cin>>l>>r>>k; int j=l; if(j%k!=0) j+=k-j%k; while(j<=r) { result+=a[j]; j+=k; } cout<<result<<endl; result=0; } return 0; }
- 前缀和+数学:https://www.luogu.com.cn/problem/T430523(n太大没法计算差分,需要利用数学直接计算对前缀和的影响)
- 前缀和+后缀和:https://www.luogu.com.cn/problem/T432687(可以用数学解决,也可以用双向前缀和解决)
- 前缀和+欧拉筛:https://www.luogu.com.cn/problem/T432688(需要用较快的读取数据方式)
差分:
- 二维差分:https://www.luogu.com.cn/problem/P3397
- 二阶差分:https://www.luogu.com.cn/problem/P4231
- 差分应用:https://www.luogu.com.cn/problem/T432689
- 难点首先要想到从左到右更新,其次找到正确右端点,最后是代码不能出bug
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 【.NET】调用本地 Deepseek 模型
2013-03-18 Hive中小表与大表关联(join)的性能分析zz
2011-03-18 《SQL Server 2005数据挖掘与商业智能完全解决方案》读书笔记