
前缀和
SYaoJun
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
5874. 分割数组的最多方案数
思路分割数组的最多方案数考查点:前缀和+哈希表看到有连续的子数组和,很明显在提示用前缀和,分析出要尽快获取前后缀匹配的数量,可以用哈希表。比较难处理的就是题目可以改变数组中某个数组,此时只影响前缀和后面的结果,因此我们可以将要查的值分为两段。当前修改元素之前的数当前修改元素之后的数更新数组后,目标值也改变了,我们可以考虑在修改元素之前求目标值,更新元素之后求修改后的目标值,两者之和即是结果。注意点:结果可能会超过int,记得使用long long62场双周赛,这是我最接近AK原创 2021-10-03 08:49:11 · 297 阅读 · 0 评论 -
437. 路径总和 III
题目路径总和 III代码考点:前缀和/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullp原创 2021-09-28 07:48:37 · 113 阅读 · 0 评论 -
5882. 网格游戏
题目链接代码考点:前缀和思路:枚举第一个机器人向下走的位置class Solution {public: using LL = long long; long long gridGame(vector<vector<int>>& grid) { // 枚举第一个机器人向下走的位置 int n = grid[0].size(); vector<LL> f(n+1), g(n+1);原创 2021-09-26 22:35:41 · 287 阅读 · 0 评论 -
2518 和为S
题目链接前缀和哈希表#include <iostream>#include <vector>#include <cstring>#include <unordered_map>using namespace std;const int N = 3e5+5;int nums[N];int sum[N];int main(){ int n; cin>>n; memset(nums, 0, sizeof nums); u原创 2021-05-23 11:09:41 · 169 阅读 · 0 评论 -
1109. 航班预订统计
题目类型:差分数组难度:中等class Solution {public: int dp[20005]; vector<int> corpFlightBookings(vector<vector<int>>& book, int n) { //差分数组 vector<int> ...原创 2020-03-29 13:24:30 · 163 阅读 · 0 评论 -
1065 最小正子段和
前缀和题目排序是个好东西最快是否可以优化到O(n)O(n)O(n)类似题目思路:统计前缀和,然后找到前缀和中右边比它大但是大的程度最小的。#include <iostream>#include <set>#include <algorithm>using namespace std;typedef long long ll;const in...原创 2020-03-25 00:33:23 · 201 阅读 · 0 评论 -
1081 子段求和
前缀和题目注意查询的不是起点和终点而是起点和长度#include <iostream>#include <unordered_map>using namespace std;typedef long long ll;const int N = 5e5+5;ll S[N];int main(){ ll n, m, x; scanf("%lld", &am...原创 2020-03-24 23:22:16 · 169 阅读 · 0 评论 -
1094 和为k的连续区间
前缀和使用哈希可以适当减少复杂度#include <iostream>#include <unordered_map>using namespace std;typedef long long ll;const int N = 1e4+5;ll S[N];int main(){ ll n, k, x; scanf("%lld%lld", &n, ...原创 2020-03-24 23:17:27 · 143 阅读 · 0 评论 -
合法括号序列判断
把做括号视为1,有括号视为-1,在字符串的遍历过程中保证前缀和为非负同时反向做一遍,但是此时右括号为1,左括号为-1,保证前缀和为非负class Parenthesis {public: bool chkParenthesis(string A, int n) { int x = 0; for(auto c: A){ if(c=...原创 2019-10-29 07:56:34 · 215 阅读 · 0 评论 -
子数组的最大累加和问题
DP只要累加和大于零 前面的这部分就有利用价值 在过程中求最大值#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N = 1e5+5;typedef long long LL;int arr[N];int main(){ i...原创 2019-09-30 11:30:50 · 220 阅读 · 0 评论 -
802. 区间和
离散化把整型区间的数映射到十万左右1.去重2.二分查找#include <cstdio>#include <iostream>#include <vector>#include <string>#include <set>#include <cstring>#include <queue>#i...原创 2019-09-11 10:34:02 · 307 阅读 · 0 评论