
线段树
monzaid
这个作者很懒,什么都没留下…
展开
-
(环状线段树)poj 2750 Potted Flower & poj 2886 Who Gets the Most Candies?
题目:poj2750题意:给一个环状线段,有如下操作:x v:修改位置 x 的值,使它的值为 v修改完后输出这个环状线段的连续区间的值的最大和(最大区间不能是这个环本身)思路:连续区间的最大和 = 这个区间的 max(连续区间的最大和,这个区间的总和 - 连续区间的最小和)线段树要记录:这个区间的从左(右)边开始的连续区间的最大和从左(右)边开始的连续区间的最小和这个区间的总和这个区间的连续区间的最大和和最小和这个区间的连续区间的最大和 = max(这个区间的从左(右)边开始原创 2021-01-27 13:57:45 · 130 阅读 · 0 评论 -
poj 2828 Buy Tickets
题目:poj2828题意:一支队伍,有多个人按输入顺序在指定的位置插队,输出最后的队伍。思路:把插队顺序倒序加入到线段树里,每个人的位置就固定了。例子:40 205231 192431 38900 31492线段树记录的是每个区间还有多少个空位,每向线段树加入一个元素,就把它的对应位置设为0。代码:#include <iostream>#include <algorithm>#define lson l, mid, pos << 1#de原创 2021-01-27 13:12:24 · 112 阅读 · 0 评论 -
poj 2777 Count Color
题目:poj2777思路:线段树 + lazy + 用位来储存状态举个例子:有5个颜色状态1:颜色1,颜色3用位表示:00101状态2:颜色3,颜色4用位表示:01100状态3:状态1 和 状态2 的叠加用位表示:状态1 | 状态2 = 00101 | 01100 = 01101代码#include <iostream>#include <algorithm>#include <cmath>#include <cstring原创 2021-01-24 11:52:07 · 105 阅读 · 0 评论 -
hdu 1698 Just a Hook 和 poj 3468 A Simple Problem with Integers
题目:hdu1698题意:线段树 + lazy代码#include <bits/stdc++.h>#define lson l, mid, pos << 1#define rson mid + 1, r, pos << 1 | 1using namespace std;const int MAXN = 1e5 + 10;int tree[MAXN<<2];int lazy[MAXN<<2]; //可以用 boolvoid原创 2021-01-24 11:03:36 · 82 阅读 · 0 评论 -
hdu 4027 Can you answer these queries?
题目:hdu题意:这句话的意思是sqrt后向下取整,而不是sqrt后四舍五入…思路:线段树 + lazy,如果sqrt到1后就不用sqrt了代码#include <iostream>#include <algorithm>#include <cmath>#define ll long long#define lson l, mid, pos << 1#define rson mid + 1, r, pos << 1 | 1原创 2021-01-24 10:27:14 · 106 阅读 · 0 评论 -
(二维线段树)hdu 1823 Luck and Love & poj 1195 Mobile phones & poj 2155 Matrix
题目:hdupoj题意:二维线段树的查找与添加注意:二维线段树的更新方式要全更新:(更新范围)....................有一种错误的更新方式:(更新范围) . . ......错误的代码void addx(int x, int y, int v, int l, int r, int pos){ if (l == r){ addy(pos, y, v, 1, Size, 1); return; } int mi原创 2021-01-24 09:24:06 · 248 阅读 · 1 评论 -
hdu 1540 (poj 2892) Tunnel Warfare
题目题意:N个村子连成一条线,相邻的村子相连(没有被摧毁)。三个命令:D x,表示x村庄被摧毁;Q x,表示与x直接或间接相连的村庄有多少个,当然包括他自己(被摧毁为0);R,表示恢复最后被摧毁的村庄。思路:记录每个线段的从左边起的最大连续区间和从右边起的最大连续区间代码:#include <iostream>#define lson l, mid, pos << 1#define rson mid + 1, r, pos << 1 | 1usin原创 2021-01-23 23:18:45 · 142 阅读 · 0 评论