
前缀和
幽殇默
他时若遂凌云志,敢笑黄巢不丈夫。
展开
-
C. Pluses and Minuses 【1300 / 思维 前缀和】
https://codeforces.com/problemset/problem/1373/C#include<bits/stdc++.h> using namespace std;typedef long long int LL;const int N=1e6+10;LL s[N];void solve(string ss){ LL res=0,n=ss.size(); for(int i=0;i<n;i++) { if(ss[i]=='+') s[i+1].原创 2021-11-13 16:45:22 · 460 阅读 · 0 评论 -
A. Flipping Game【1200 / 前缀和】
https://codeforces.com/problemset/problem/327/A#include<bits/stdc++.h>using namespace std;int a[105],s[105],ss[105],n;int main(void) { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) s[i]=s[i-1]+a[i]; int an.原创 2021-10-23 22:39:32 · 90 阅读 · 0 评论 -
B. Fence【1100 / 前缀和】
https://codeforces.com/problemset/problem/363/B#include<bits/stdc++.h>using namespace std;const int N=1e5*2+10;int a[N],s[N],n,k,ans=1e9,flag;int main(void){ cin>>n>>k; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<.原创 2021-10-23 09:25:59 · 119 阅读 · 0 评论 -
1732. 找到最高海拔【差分 前缀和】
https://leetcode-cn.com/problems/find-the-highest-altitude/差分的定义,求一下前缀和就是原数组的各个数。在前缀和里求一个最大值即可。class Solution {public: int largestAltitude(vector<int>& gain) { int ans=0,sum=0; for(int i=0;i<gain.size();i++) .原创 2021-10-09 10:11:28 · 143 阅读 · 0 评论 -
1588. 所有奇数长度子数组的和【前缀和】
https://leetcode-cn.com/problems/sum-of-all-odd-length-subarrays/class Solution {public: int sumOddLengthSubarrays(vector<int>& arr) { vector<int>ve; ve.push_back(0); int sum=0; for(int i=0;i<arr.size(.原创 2021-10-08 09:23:51 · 82 阅读 · 0 评论 -
1480. 一维数组的动态和【前缀和】
https://leetcode-cn.com/problems/running-sum-of-1d-array/class Solution {public: vector<int> runningSum(vector<int>& nums) { vector<int>ans; int sum=0; for(int i=0;i<nums.size();i++) sum+=nums[i],ans..原创 2021-10-07 08:07:34 · 78 阅读 · 0 评论 -
1413. 逐步求和得到正数的最小值【前缀和】
https://leetcode-cn.com/problems/minimum-value-to-get-positive-step-by-step-sum/ans>=1ans+s1>=1 -> ans>=1-s1ans+s1+s2>=1 -> ans>=1-(s1+s2)以此类推,找到一个最大的,可以包含所有区域的。class Solution {public: int minStartValue(vector<int>&.原创 2021-10-06 10:02:05 · 107 阅读 · 0 评论 -
724. 寻找数组的中心下标【前缀和】
https://leetcode-cn.com/problems/find-pivot-index/class Solution {public: int pivotIndex(vector<int>& nums) { int n=nums.size(); vector<int>ve; int s=0; ve.push_back(0); for(int i=0;i<nums.size();i+原创 2021-10-05 09:24:58 · 77 阅读 · 0 评论 -
303. 区域和检索 - 数组不可变【前缀和】
https://leetcode-cn.com/problems/range-sum-query-immutable/class NumArray {public: vector<int>s; NumArray(vector<int>& nums) { s.push_back(0); int temp=0; for(int i=0;i<nums.size();i++) {.原创 2021-10-04 17:20:13 · 75 阅读 · 0 评论 -
【2021.5.26】 3574. 乘积数量
题目地址只需要记录每一个数的正负号即可,求每一个前缀的正号的个数。#include<cstdio>#include<iostream>using namespace std;typedef long long int LL;const int N=1e5*2+10;LL f[N],s[N];// f该位是正,负 s正的个数的前缀和int main(void){ LL n; cin>>n; f[0]=1; for(int i=1;i<=n;i.原创 2021-06-14 15:32:09 · 120 阅读 · 0 评论 -
【2021.5.11】3493. 最大的和
题目链接考察的知识点:前缀和双指针方法一: 纯的前缀和做法 时间复杂度O(n) 需要额外的两个前缀和数组来维护#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int N=1e5+10;int a[N];int b[N];long long int s[N];//默认全选的前缀和long long int ss[N];//按照.原创 2021-06-04 13:47:16 · 123 阅读 · 0 评论 -
1530. 最短距离 【一维前缀和 处理环形】
https://www.acwing.com/problem/content/description/1532/再在后面复制相同的一份就可以了。此时2->1 有两种方式,我们求其最小的距离。#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int N=1e5*2+10;int a[N],s[N],n,q;int main(void){.原创 2021-05-17 22:41:36 · 242 阅读 · 0 评论 -
acwing 3127. 来,骗 【一维前缀和板子题】
https://www.acwing.com/problem/content/description/3130/#include<cstdio>#include<iostream>using namespace std;const int N=1e6+10;int a[N],s[N],q,n;int main(void){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i].原创 2021-05-17 22:12:05 · 143 阅读 · 0 评论