线段树
文章平均质量分 85
nike0good
这个作者很懒,什么都没留下…
展开
-
Meta Hacker Cup 2024 Round 2 题解
Cottontail Climb (Part 1)暴力枚举Cottontail Climb (Part 2)暴力枚举Problem B: Four in a Burrow记忆化搜索Problem C: Bunny Hopscotch统计todo原创 2024-10-22 08:57:19 · 1046 阅读 · 0 评论 -
AtCoder Beginner Contest 369 题解
A - 369#include<bits/stdc++.h> using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define ForkD(i,k,n) for(int i=n;i>=k;i--)#define Rep(i,n) for(int i=0;i<n;i++)#define ForD(i,n) for(原创 2024-09-01 21:53:26 · 1165 阅读 · 0 评论 -
Hello 2024 题解
B. Plus-Minus SplitC. Grouping Increases给一个数列,不改变相对顺序前提拆成2个数列。问这2个数列中,相邻且前一个数小于后一个数的数对的最小值贪心,维护2个数列队尾的值,如果都会增加数对或都不会,则放到队尾数小的那个。不然放不会增加数对的那个。D. 01 Tree给一个树,所有非叶子节点均有左右2个子节点,边权分别0和1(可以对调)。已知所有叶子节点的按dfs序排列后的到根的最短路径长。问是否合法?dfs_order = []function dfs(原创 2024-01-13 19:32:58 · 1119 阅读 · 1 评论 -
Meta Hacker Cup 2023 Round 1 题解
给一个数列,要求分成若干组,要求每组至少2个数,使得所有组中位数的最大值与最小值之差尽量大,求这个值。Problem B1: Sum 41 (Chapter 1)Given a positive integer P, please find an array of at most 100 positive integers which have a sum of 41 and a product of P, or output −1 if no such array exists.If multipl原创 2023-10-19 22:33:25 · 403 阅读 · 0 评论 -
UOJ #228(基础数据结构练习题-区间开根+区间加+区间求和)
给出一个长度为 n 的数列 A,接下来有 m 次操作,操作有三种:对于所有的 i∈[l,r],将 Ai 变成 Ai+x。 对于所有的 i∈[l,r],将 Ai 变成 √Ai(向下取整)。 对于所有的 i∈[l,r],询问 Ai 的和。 作为一个不怎么熟练的初学者,sylvia 想了好久都没做出来。而可怜酱又外出旅游去了,一时间联系不上。于是她决定向你寻求帮助:你能帮她解决这个问题吗。#incl原创 2017-03-17 22:07:18 · 966 阅读 · 0 评论 -
小鸡腿U T10 Tokyo2014
[toc] 题目在这:http://judge.u-aizu.ac.jp/onlinejudge/contest/ICPCOOC2014/G.pdfUVALive 6832 Bit String Reordering#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<functional原创 2016-08-25 21:38:41 · 553 阅读 · 0 评论 -
线段树专题
HDU 1166 敌兵布阵HDU 1394 Minimum Inversion NumberHDU 1698 Just a HookPOJ 3468 A Simple Problem with IntegersPOJ 3225POJ 3667 HotelBZOJ 1067 降雨量HDU 1166 敌兵布阵单点加减区间求和#include<bits/stdc++.h>using nam原创 2016-09-03 18:33:14 · 428 阅读 · 0 评论 -
POJ 2482(Stars in Your Window-线段树+扫描线)
题意:平面上有n<=10000n<=10000个点,每个点有个亮度,用一个W*H的矩形(长宽平行于坐标轴)框点,使框住的点的亮度和尽量大(矩形边上的点不算)一个点被只能对中心在(x-w/2,x+w/2),(y-h/2,y+h/2)的矩形产生影响#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#inclu原创 2016-07-06 22:30:39 · 367 阅读 · 0 评论 -
HDU 5592(ZYB's Premutation-线段树)
题意:有一个1到n的排列PP,已知PP中每个前缀区间的逆序对数,求这个排列.写一个线段树,从后往前递推#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<functional>#include<iostream>#include<cmath>#include<cctype>#inc原创 2015-12-16 09:49:22 · 598 阅读 · 0 评论 -
BZOJ 4373(算术天才⑨与等差数列-线段树+hash)
Description算术天才⑨非常喜欢和等差数列玩耍。 有一天,他给了你一个长度为n的序列,其中第i个数为a[i]。 他想考考你,每次他会给出询问l,r,k,问区间[l,r]内的数从小到大排序后能否形成公差为k的等差数列。 当然,他还会不断修改其中的某一项。 为了不被他鄙视,你必须要快速并正确地回答完所有问题。 注意:只有一个数的数列也是等差数列。Input第一行包含两个正整数n,m(1原创 2017-03-07 10:43:50 · 445 阅读 · 0 评论 -
中国(北方)大学生程序设计训练赛(第一周)(Problem F: 等差区间-线段树+等差数列平方和公式)
对一长度为10510^5的静态序列进行q次询问,每次询问某段区间元素是否排序后能成为等差数列#include <iostream>#include <cmath>#include <algorithm>#include <cstdio>#include <cstring>#include <string>#include <vector>#include <map>#include原创 2017-03-07 16:14:45 · 605 阅读 · 0 评论 -
CF438D(The Child and Sequence-线段树mod x)
维护一个区间的和,支持单点修改,区间mod x考虑a>xa>x,时,amodx<a/2a \bmod x < a / 2,否则a=x所以暴力维护就行了#include <iostream>#include <cmath>#include <algorithm>#include <cstdio>#include <cstring>#include <string>#include <vec原创 2017-03-28 20:57:38 · 621 阅读 · 0 评论 -
BZOJ 3196(Tyvj 1730 二逼平衡树-线段树套Treap)
Description您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 1.查询k在区间内的排名 2.查询区间内排名为k的值 3.修改某一位值上的数值 4.查询k在区间内的前驱(前驱定义为小于x,且最大的数) 5.查询k在区间内的后继(后继定义为大于x,且最小的数) Input第一行两个数 n,m 表示长度为n的有序序列和m个操作 第二行有n个数,表示原创 2017-03-22 08:33:14 · 431 阅读 · 0 评论 -
BZOJ 5039([Jsoi2014]序列维护-线段树区间加,区间乘,区间求和)
DescriptionJYY 有一个维护数列的任务。 他希望你能够来帮助他完成。 JYY 现在有一个长度为 N 的序列 a1,a2,…,aN,有如下三种操作: 1、 把数列中的一段数全部乘以一个值; 2、 把数列中的一段数全部加上一个值; 3、 询问序列中的一段数的和。 由于答案可能很大,对于每个询问,你只需要告诉 JYY 这个询问的答案对 P 取模的结果即可。 Input第一行包含两原创 2017-09-10 23:51:27 · 664 阅读 · 0 评论 -
HK 2016(Peak Tower-矩形面积并)
>在W∗HW*H(m2m^2)的方框里,由n个矩形(坐标平行于坐标轴),每个矩形开始在(sx,sy)(sx,sy),且以(vx,vy)(vx,vy)的速度匀速移动。问在0~Es的时间里,方框内被矩形覆盖的最小面积。 矩形面积并,处理出若干个关键时间点(线线相撞的时刻)。#include<bits/stdc++.h> using namespace std;#define For(i,n) fo原创 2017-10-30 12:19:31 · 381 阅读 · 0 评论 -
BZOJ 5123([Lydsy12月赛]线段树的匹配-记忆化搜索)
题意:给定一棵表示 [1, n] 的线段树,请求出它的最大匹配中有多少条边,并求出有多少种最大匹配的方案。显然线段树形态由长度唯一确定,因此可以用(长度,根节点是否和子树的节点匹配)作为状态进行记忆化搜索#include<bits/stdc++.h> using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i原创 2018-01-04 22:06:00 · 385 阅读 · 0 评论 -
美团CodeM编程大赛复赛(空间隧道-矩形面积并)
给1棵树,编号1~n,还有m条路径,现在问存在多少点对u,vu,vu,v,满足uuu到vvv的必经之路上,不会经过这m条路径中的任何一条。 n,m&lt;=1e5n,m&lt;=1e5n,m(u,v)(u,v)(u,v), 如果x,y不是祖先关系,则禁止的区域为:从x的子树到y的子树。 如果是祖先关系,假设x的深度小,且往y方向下面一个点是z, 那么禁止的区域为:一个点在y的子树...原创 2018-07-16 14:13:15 · 336 阅读 · 0 评论 -
BestCoder Round #58(Inversion-线段树)
给定一个数列,删除一个连续长度m的序列,使剩下的序列逆序对对数最少 ..a l−2 a l−1 [a l ..a r ] a r+1 .. .. a_{l-2}\space a_{l-1} \space [a_l..a_r] \space a_{r+1} .. 把删除的序列左右两侧的数各放在一颗线段树中统计 ,每次移动一步,求逆序对注意数组清0时不能直接memset,否则TLE#includ原创 2015-10-04 17:51:28 · 566 阅读 · 0 评论 -
HDU 4967(Handling the Past-线段树维护可持久化栈操作)
Handling the PastTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 450 Accepted Submission(s): 188Problem DescriptionNowadays, cl原创 2015-09-06 16:52:00 · 1084 阅读 · 0 评论 -
POJ 2828(卡时线段树)
本题乍一看链表,实际上肯定超时%……故用线段树 LogN查找……Program P2828;const maxn=200000;var n,i,j:longint; pos,val:array[1..maxn] of longint; sum:array[1..maxn*10] of longint; ans:array[1..maxn] of longi原创 2012-08-22 20:36:43 · 2244 阅读 · 0 评论 -
POJ 2528(数据有误的线段树)
此题数据有误……是我英文太差,还是答案出错……Program P2528;const maxn=10000; maxr=10000000;var t,n,i,j,k:longint; a,b,v:array[1..maxn*2] of longint; h:array[1..maxr] of longint; col:array[1..max原创 2012-08-22 17:15:08 · 1223 阅读 · 0 评论 -
POJ 2777(涂点问线)
线段树……Program p2777;const maxl=100000; maxt=30; maxo=100000;var l,t,o,i,j,k:longint; col:array[1..maxl*10] of longint; c:char; x,y,color:longint; visit:array[1..maxt] of原创 2012-08-24 15:22:30 · 1019 阅读 · 0 评论 -
POJ 3468(成段更新)
Language:Default线段树的成段更新Time Limit: 5000MS Memory Limit: 131072KTotal Submissions: 38010 Accepted: 11017Case Time Limit: 2000MSDescription对于数列 A1, A2,原创 2012-11-14 10:55:49 · 1690 阅读 · 0 评论 -
fzu_noip 1040(继任者-离线排序插入+区间最值)
继任者时限:1s内存:32M★问题描述: S开了家公司,他自己是老板,其余员工都有一名直系上级,每名员工都有对公司的忠诚度和能力值。S时不时会开除某名员工,由其下属中能力值大于这名员工的人中忠诚度最高的担任其职务。他想知道,若开除某名员工,该选谁担任其职务。A是B的下属是指,A的直系上级是B或B的下属。★数据输入:第一行输入T表示CASE数。接下来T组数据,每组数据第一行输入两原创 2013-02-04 20:15:22 · 1233 阅读 · 0 评论 -
BZOJ 3211(花神游历各国-线段树区间开方)
3211: 花神游历各国Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 52 Solved: 24[Submit][Status][Discuss]DescriptionInputOutput每次x=1时,每行一个整数,表示这次旅行的开心度Sample Input41 100原创 2013-05-28 12:32:27 · 2724 阅读 · 0 评论 -
SPOJ 2713(GSS4-线段树区间开方-多组数据)
2713. Can you answer these queries IVProblem code: GSS4You are given a sequence A of N(N 18. On this sequence you have to apply M (M (A) For given x,y, for each elements between原创 2013-06-03 13:15:27 · 2095 阅读 · 0 评论 -
CF 316E3(Summer Homework-广意Fib数列在p,q=1时的性质-Fib线段树)
E3. Summer Homeworktime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputBy the age of three Smart Beaver master原创 2013-06-16 11:31:49 · 2876 阅读 · 0 评论 -
BZOJ 1099([POI2007]树Drz-9次线段树&分类讨论+线段树与插入顺序维护2个参数)
1099: [POI2007]树DrzTime Limit: 15 Sec Memory Limit: 162 MBSubmit: 142 Solved: 55[Submit][Status]DescriptionCDQZ是一个偏远的小学校,FGD在学校里中了一排树。他却不喜欢这些树的顺序,因为他们高高矮矮显得那么参差不齐。 FGD定义这些树的不整齐程度为相邻两树的高度原创 2014-12-31 19:07:46 · 2183 阅读 · 0 评论 -
Chang'an(Black Box-线段树)
线段树#include using namespace std;struct rect{ int l, r, c, x;};struct rec{ int x, p, ans, rank;};rect tree[800004];rec a[200004], get[20000];bool cmpx(const rec &a, const rec &b){原创 2015-04-24 19:20:20 · 1208 阅读 · 0 评论 -
UVA 11992(Fast Matrix Operations-线段树区间加&改)[Template:SegmentTree]
There is a matrix containing at most 106elements divided into r rows and c columns. Each elementhas a location (x; y) where 1 x r, 1 y c. Initially, all the elements are zero. You need to原创 2015-05-13 22:06:46 · 960 阅读 · 0 评论 -
hiho 1169(猜数字-线段树求min(|Ai-k|))
#1169 : 猜数字时间限制:10000ms单点时限:5000ms内存限制:256MB描述你正在和小冰玩一个猜数字的游戏。小冰首先生成一个长为N的整数序列A1, A2, …, AN。在每一轮游戏中,小冰会给出一个区间范围[L, R],然后你要猜一个数K。如果K在AL, AL+1, …, AR中,那么你获胜。在尝试了几轮之后,原创 2015-05-18 15:33:28 · 1441 阅读 · 0 评论 -
CF 558E(A Simple Task-计数排序+线段树)
E. A Simple Tasktime limit per test5 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputThis task is very simple. Given a string S原创 2015-07-26 14:44:01 · 1611 阅读 · 0 评论 -
HDU 4893(Wow! Such Sequence!-线段树单点修改+区间求和+改为最近Fib数)
Wow! Such Sequence!Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 3830 Accepted Submission(s): 1081Problem DescriptionRecently,原创 2015-09-01 21:07:37 · 834 阅读 · 0 评论 -
HDU 4913(Least common multiple-线段树+容斥)
Least common multipleTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 767 Accepted Submission(s): 257Problem Descriptionbobo has原创 2015-09-05 13:11:20 · 799 阅读 · 0 评论 -
HDU 5338(ZZX and Permutations-用线段树贪心)
ZZX and PermutationsTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 888 Accepted Submission(s): 278Problem DescriptionZZX likes原创 2015-08-20 20:29:48 · 948 阅读 · 0 评论 -
线段树-模板
PushUp(root) 维护 sum[root]=sum[root/2]+sum[root/2+1] Build 建树 (当前区间,序号(当前区间的root)) 维护目前结点l=r return 更新左右子树Update 更新子节点 (当前区间,所求区间,Root)l=r 更新 return更新结点原创 2012-07-24 11:04:16 · 886 阅读 · 0 评论