前缀和与差分
分享关于前缀和的题解文章
MangataTS
一个爱折腾的Coder
展开
-
牛牛的猜球游戏(动态规划+前缀影响)
题目连接https://ac.nowcoder.com/acm/contest/19483/F题面思路我们用一个f[i][j]f[i][j]f[i][j]表示第i个操作中第j个杯子中的球,因为我们不断地进行一个交换杯子的操作,所以我们会有一个前缀的影响,所以每次我们直接通过rrr和l−1l-1l−1进行一个映射就好了代码#include<bits/stdc++.h>using namespace std;const int N = 1e5+10;int dp[N][10]原创 2022-02-15 00:47:51 · 676 阅读 · 0 评论 -
智乃酱的区间乘积(前缀积+逆元)
题目链接https://ac.nowcoder.com/acm/contest/19483/A题面思路我们要求区间的乘积在1e9+71e9+71e9+7模下,那么这就是个前缀积的模板啦,和前缀和类似的,只不过我们需要初始化pre[0]pre[0]pre[0]为1,然后我们做一个除法的时候不能直接除,因为这样会有精度问题,所以这里我们需要使用逆元来协助我们进行除法运算代码#include<bits/stdc++.h>using namespace std;#define ll l原创 2022-02-15 00:10:23 · 839 阅读 · 0 评论 -
小红的记谱法(模拟+前缀和)
题目链接https://ac.nowcoder.com/acm/contest/23479/F题面思路我们每次遇到一个<就让当前的权值自增1,遇到>就自减1,然后每次遇到一个字符的时候,我们就看现在的权值是多少大于等于0,那么我们直接在后面添加这么多的低音即.就好了如果小于0,那么我们直接在后面添加负的这么多高音即*就好了代码#include<bits/stdc++.h>using namespace std;//----------------自定义部分-原创 2022-02-09 12:01:31 · 184 阅读 · 0 评论 -
蓝彗星(差分+前缀和)
题目链接https://ac.nowcoder.com/acm/contest/23479/C题面思路我们知道彗星每次出现的持续时间,以及出现时间,很容易就联想到区间覆盖问题,有的同学可能就直接去写树状数组或者线段树了,其实没必要,我们直接差分处理就好了,关于差分和前缀和的讲解链接:https://acmer.blog.csdn.net/article/details/122371482现在你应该懂差分和前缀和了吧?那我们现在来看怎么使用差分,因为我们想知道这个时间是否出现过红彗星,那么我们就希原创 2022-02-09 11:08:11 · 296 阅读 · 0 评论 -
AcWing 1884. COW(前缀和)
题目连接https://www.acwing.com/problem/content/1886/思路对于一个COW单词,因为不要求连续,所以我们只需要对C求一个前缀和,W求一个后缀和,然后循环一边,遇到的是一个O的时候我们就将O的前缀和乘上W的后缀和就是我们当前O能组成的所有单词数量代码#include<bits/stdc++.h>using namespace std;//----------------自定义部分----------------#define ll long原创 2022-02-06 20:51:44 · 217 阅读 · 0 评论 -
AcWing 1913. 公平摄影(前缀和+STL)
题目连接https://www.acwing.com/problem/content/1915/思路对于这个牛牛的位置和不同牛牛我们可以用一个pair存储,然后我们实际上要求的答案是连续同种牛牛的最长距离连续荷斯坦牛的最长距离连续根西岛牛的最长距离连续两种牛牛但是两种牛牛的数量都是相同的因为位置是乱序的,所以我们先把牛牛按照位置信息排个序那么对于第一种情况,我们直接O(N)扫过去即可,对于第二种情况,我们先对当前得序列求一个前缀和,我们假定H牛牛是正数、G牛牛是负数,那么我们在循原创 2022-02-06 20:49:32 · 264 阅读 · 0 评论 -
AcWing 1922. 懒惰的牛(前缀和 or 双指针)
思路因为数据范围很小,所以我们可以直接用前缀和的方法做,当然也可以用尺举法,后面补上前缀和因为x的数据范围就是1e6,那么我们直接把对应地点的值加上去就好了#include<bits/stdc++.h>using namespace std;#define ll long long#define mod 1000000009#define endl "\n"#define PII pair<int,int>int dx[4]={0,-1,0,1},dy[4]={原创 2022-02-06 20:47:37 · 192 阅读 · 0 评论