
线段树
1
1E6
这个作者很懒,什么都没留下…
展开
-
Can you answer these queries?(区间修改+区间查询)
题目链接: Can you answer these queries?大致题意:给一个正整数n,有两种操作1.使区间[l,r]中的每一个数开方2.查询区间[l,r]的和解题思路:区间修改+区间查询AC代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e5 + 10;int n, m;ll w[N];struct node { int l, r;原创 2021-01-17 21:23:27 · 182 阅读 · 0 评论 -
A Simple Problem with Integers(区间修改+区间查询)
题目链接: A Simple Problem with Integers大致题意:两种操作:1.区间[l,r]都增加v2.查询区间[l,r]所有元素的和解题思路:区间修改+区间查询AC代码:#include<iostream>#include<algorithm>#include<cstring>using namespace std;typedef long long ll;const int N = 1e5 + 10;int n, m原创 2021-01-16 22:44:02 · 181 阅读 · 0 评论 -
Just a Hook(区间修改)
题目链接: Just a Hook大致题意:给定一个n, 对于区间[1, n]有如下操作: 选定l, r, 把[l, r]区间全部修改为数值c最后输出[1, n]的区间和解题思路:区间修改 + 根结点查询AC代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e5 + 10;int n, m;struct node { int l, r; int s原创 2021-01-14 21:37:30 · 290 阅读 · 0 评论 -
HDU - 1540 Tunnel Warfare
题目链接: Tunnel Warfare大致题意:多组!给出n个点,排成一列,点与点之间互通有三种操作:删除第x个点.询问点x所处的最大连通区间的长度最后删除的点被恢复解题思路:单点修改+区间查询维护的值有当前该点的最大连通长度sum,该点左侧最大连通长度lmax,该点右侧最大连通长度rmax删除较简单,查询分两种情况:1.x在当前区间的左子树上若x处于左子树的rmax内部, 则结果为左子树的rmax + 右子树的lmax 。否则以左子树作为新的区间进行递归2.x在当前区原创 2021-01-12 17:20:03 · 103 阅读 · 0 评论 -
HDU - 1754 I Hate It
题目链接: I Hate It大致题意:解题思路:线段树模板题,考察单点修改区间查询,维护的是区间的最大值AC代码:#include <bits/stdc++.h>using namespace std;const int N = 2e5 + 10;int n, m;int w[N];struct node { int l, r; int maxx;}t[N * 4];void pushup(int index) { t[index].maxx = max(原创 2021-01-12 16:20:41 · 127 阅读 · 0 评论