洛谷 P3960 列队【线段树】】的更多相关文章

To 洛谷.3373 [模板]线段树2 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.将某区间每一个数乘上x 3.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含三个整数N.M.P,分别表示该数列数字的个数.操作的总个数和模数. 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值. 接下来M行每行包含3或4个整数,表示一个操作,具体如下: 操作1: 格式:1 x y k 含义:将区间[x,y]内每个数乘上k 操作2: 格式:…
正解:动态开点线段树 解题报告: 传送门! 因为最近学主席树的时候顺便get到了动态开点线段树?刚好想起来很久很久以前就想做结果一直麻油做的这题,,,所以就做下好了QAQ 然后说下,这题有很多种方法,我目前是先只写个最傻逼的方法,等学了splay什么的再来upd一下QAQ(这题好像有,线段树.树状数组.splay等各种方法,我可能都会写只要我麻油咕QAQ 然后就直接进入正题QAQ 首先其实要知道动态开点线段树和线段树思想什么的都是一样儿的,只是实现方法有一点儿区别(就是动态开点线段树节省点儿空间…
题意 题目链接 Sol 看不懂splay..,看不懂树状数组... 只会暴力动态开节点线段树 观察之后不难发现,我们对于行和列需要支持的操作都是相同的:找到第\(k\)大的元素并删除,在末尾插入一个元素 这样我们可以维护\(n+1\)棵线段树(对列单独建一棵) 每次操作的时候,如果\(y_i = m\),那么只对列所在的线段树进行操作 否则,首先在第\(x_i\)棵线段树中找到第\(y_i\)大的元素并删除,在列所在的线段树中找到需要插入的元素并记录下来. 然后再删除列中对应的元素 当然,还有许…
用动态开点线段树分别维护每一行和最后一列,线段树的作用是记录被选的点的个数以及查询第k个没被选的点,每次修改,从行里标记被选的点,从最后一列标记向左看齐之后少的点,然后用vector维护行列的新增点 #include<iostream> #include<cstdio> #include<vector> using namespace std; const int N=600005; int n,m,q,mx,tot,rt[N]; vector<long long…
P3960 列队 题目描述 \(Sylvia\)是一个热爱学习的女♂孩子. 前段时间,\(Sylvia\)参加了学校的军训.众所周知,军训的时候需要站方阵. \(Sylvia\)所在的方阵中有\(n \times m\)名学生,方阵的行数为\(n\),列数为\(m\). 为了便于管理,教官在训练开始时,按照从前到后,从左到右的顺序给方阵中 的学生从\(1\)到\(n \times m\)编上了号码(参见后面的样例).即:初始时,第\(i\)行第\(j\)列 的学生的编号是\((i-1)\time…
洛谷题目传送门 最弱的Splay...... 暴力模拟30分(NOIP2017实际得分,因为那时连Splay都不会)...... 发现只是一个点从序列里搬到了另一个位置,其它点的相对位置都没变,可以想到维护每一行的前\(m-1\)列的平衡树,还有最后一列的平衡树.但是如果对所有点都开一个Splay,因为MLE的问题,只能获得60分...... 因为询问次数只有\(O(N)\)级别,可以发现操作完之后还有很多行的某一些区间是连续的区间.考虑每个点对应一段区间,当某操作使得一个连续区间被破坏掉的时候…
[题目背景:] 滚粗了的HansBug在收拾旧数学书,然而他发现了什么奇妙的东西. [题目描述:] 蒟蒻HansBug在一本数学书里面发现了一个神奇的数列,包含N个实数.他想算算这个数列的平均数和方差. [输入格式:] 第一行包含两个正整数N.M,分别表示数列中实数的个数和操作的个数. 第二行包含N个实数,其中第i个实数表示数列的第i项. 接下来M行,每行为一条操作,格式为以下两种之一: 操作1:1 x y k ,表示将第x到第y项每项加上k,k为一实数. 操作2:2 x y ,表示求出第x到第…
[题目描述:] 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,……,L,都种有一棵树. 由于马路上有一些区域要用来建地铁.这些区域用它们在数轴上的起始点和终止点表示.已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分.现在要把这些区域中的树(包括区域端点处的两棵树)移走.你的任务是计算将这些树都移走后,马路上还有多少棵树. [输入格式:] 输入文件t…
[题目描述:] 现在有一堆数字共N个数字(N<=10^6),以及一个大小为k的窗口.现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值. [输入格式:] 输入一共有两行,第一行为n,k. 第二行为n个数(<INT_MAX). [输出格式:] 输出共两行,第一行为每次窗口滑动的最小值 第二行为每次窗口滑动的最大值 输入样例#: - - 输出样例#: - - - - 输入输出样例 [算法分析:]  线段树使用结构体同时维护区间最小值和最大值 没有修改只有建树和查询操…
[题目描述:] /* 飞逝的的时光不会模糊我对你的记忆.难以相信从我第一次见到你以来已经过去了3年.我仍然还生动地记得,3年前,在美丽的集美中学,从我看到你微笑着走出教室,你将头向后仰,柔和的晚霞照耀着你玫瑰色的脸颊.我明白,我已经沉醉于你了.之后,经过几个月的观察和窥探,你的优雅与智慧,你对待生活的态度和你对未来的愿望深切地在我心中留下了印象.你是迷人的阳光女孩,我总是梦想着与你分享余生.唉,实际上你远远超过了我最疯狂的梦想.我不知道如何桥起我与你之间的鸿沟.所以我没有任何计划,仅仅只是等待,…