NKOJ3768 数列操作】的更多相关文章

问题描述 给出N个正整数数列a[1..N],再给出一个正整数k,现在可以重复进行如下操作:每次选择一个大于k的正整数a[i],将a[i]减去1,选择a[i-1]或a[i+1]中的一个加上1.经过一定次数的操作后,问最大能够选出多长的一个连续子序列,使得这个子序列的每个数都不小于k.总共给出M次询问,每次询问给出的k不同,你需要分别回答. 输入格式 第一行两个正整数N (N <= 300,000)和M (M <= 50).第二行N个正整数,第i个正整数表示a[i] (a[i] <= 10^…
[CJOJ2410]数列操作d 标签: 线段树 题解 没时间写题了,我来嘴巴AC吧. 注意区间加的这个值不是 确定的,随着元素位置的变化而改变. 只需要能维护这个东西剩下的就很好做了. 那么\(x*(pos-L)\)这个东西可以变成\(x *pos -x*L\) \(x*L\)是个定值,可以直接维护, \(x*pos\)的话也可以直接维护(相当于是个定值,因为是固定乘上pos倍的,释放操作就用等差数列做).…
传送门 : COGS 2638. 数列操作ψ 线段树 这道题让我们维护区间最大值,以及维护区间and,or一个数 我们考虑用线段树进行维护,这时候我们就要用到吉司机线段树啦 QAQ 由于发现若干次and,or之后,如果数据分布均匀,那么几乎所有的数在若干次操作后都会变成同一个数 因为我们的and操作中的0位,以及or操作当中的1位,都是可以把整个区间的那一二进制位重置为相同的 我们考虑利用这一个性质 如果我们直接维护一个区间内的值是否是相同的,那么效果会差很多. 我们发现我们在进行and操作的时…
http://cogs.pro:8080/cogs/problem/problem.php?pid=pyNimmVeq 264. 数列操作 ★☆   输入文件:shulie.in   输出文件:shulie.out   简单对比时间限制:1 s   内存限制:160 MB [问题描述] 给定一个数列 A,请实现如下两种操作: 1. 将 Ak 的值加 d. 2. 查询 As+As+1+⋯+At(s≤t) 的值. [输入格式] 第一行为一个整数 n(0≤n≤100000),表示数列 A 的大小. 第…
1317. 数列操作C ★★★   输入文件:shuliec.in   输出文件:shuliec.out   简单对比时间限制:1 s   内存限制:128 MB [题目描述] 假设有一个长度为 n(n≤100000) 的数列 A,支持如下两种操作: 1. 将 Ai,Ai+1,…,Aj 的值均增加 d 2. 查询 As+As+1+⋯+At(s≤t) 的值. 根据操作要求进行正确操作并输出结果. [输入格式] 第一行为一个正整数 n,表示数列的大小. 第二行有 n 个整数,表示数列 A 各项的初始…
2632. [HZOI 2016] 数列操作d ★★★   输入文件:segment.in   输出文件:segment.out   简单对比时间限制:3 s   内存限制:512 MB [题目描述] 一个长度为n的序列,一开始序列数的权值都是0,有m次操作 支持两种操作: 1 L R x,给区间[L,R]内位置为pos的数加上(pos-L)*x 0 L R,查询区间[L,R]内的权值和 最终答案对109+7取模. [输入格式] 第一行两个数n,m,表示序列长度和操作次数 接下来m行,每行描述一…
1316. 数列操作B ★★   输入文件:shulieb.in   输出文件:shulieb.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 假设有一个大小为 n(n≤100000) 整数数列 A,支持如下两种操作: 1. 将 Ai,Ai+1,…,Aj 的值均增加 d 2. 查询 Ai 的值 根据操作要求进行正确操作并输出结果. [输入格式] 输入文件第一行一个整数 n, 第二行为 n 个整数,表示数列 A 中各项的初始值. 第三行为一个整数 m ,表示操作数.…
题目大意:给定一个数列a,你需要支持的操作:区间and,区间or,询问区间最大值 解题关键: 1.双标记线段树,注意优先级(超时) 当涉及多重标记时,定义出标记的优先级,修改操作时用优先级高(先下放)的修正优先级低(后下放)的来保证标记的正确性. 同时维护了区间and,区间or https://blog.csdn.net/PhantomAgony/article/details/78810369 #include<cstdio> #include<cstring> #include…
传送门 线段树基本操作. 给出一个排列b,有一个初始值都为0的数组a,维护区间加1,区间统计区间∑(ai/bi)" role="presentation" style="position: relative;">(ai/bi)(ai/bi). 我们维护当前所有的ai" role="presentation" style="position: relative;">aiai%bi" ro…
时间限制:1 s   内存限制:160 MB [问题描述] 假设有一列数 {Ai }(1 ≤ i ≤ n) ,支持如下两种操作: (1)将 A k 的值加 D .( k, D 是输入的数) (2) 输出 A s +A s+1 +…+A t .( s, t 都是输入的数, S ≤ T ) 根据操作要求进行正确操作并输出结果. [输入格式] 输入文件第一行一个整数 n(0<=n<=100000) , 第二行为 n 个整数,表示 {A i } 的初始值. 第三行为一个整数 m(0<=m<…
[题目描述] 一个长度为n的序列,一开始序列数的权值都是0,有m次操作 支持两种操作, 1 L R x,给区间[L,R]内,第一个数加x,第二个数加2^2⋅x,第三个数加3^2⋅x...第R-L+1个数加(R−L+1)^2⋅x 2 L R 查询区间[L,R]内的权值和 每次询问的答案对264取模 [输入格式] 第一行两个数n,m,表示序列长度和操作次数 接下来m行,每行描述一个操作,有如下两种情况: 1 L R x,给区间[L,R]内,第一个数加x,第二个数加2^2⋅x,第三个数加3^2⋅x..…
时间限制 : 10000 MS   空间限制 : 165536 KB 问题描述 假设有一列数{Ai}(1≤i≤n),支持如下两种操作:将Ak的值加D.(k, D是输入的数)输出As+As+1+…+At.(s, t都是输入的数,S≤T) 输入格式 第一行一个整数n,第二行为n个整数,表示{Ai}的初始值≤10000.第三行为一个整数m,表示操作数下接m行,每行描述一个操作,有如下两种情况:ADD k d (表示将Ak加d,1<=k<=n,d为数,d的绝对值不超过10000)SUM s t (表示…
题目链接 #include<cmath> #include<cstdio> #include<cctype> #include<algorithm> using namespace std; const int N=1e5+5; #define LL long long int n,belong[N],size; LL A[N],sum[N],tag[N]; inline LL read() { LL now=0,f=1;register char c=ge…
题目链接 #include<cmath> #include<cstdio> #include<cctype> #include<algorithm> using namespace std; const int N=1e5+5; int n,m,A[N],size,belong[N],sum[N]/*某块的总和*/,tag[N]/*某块的加标记*/; inline int read() { int now=0,f=1;register char c=getc…
题目链接: http://cogs.pro/cogs/problem/problem.php?pid=2638 Solution 用jry推荐的写法即可做到单次$O(log^{2}N)$,不过随机数据下表现非常优秀. $log^{2}$大概就是一共$log$位,然后每位$O(N)$级的,所以一共$NlogN$段,每段在线段树上又是$log$. jls给的详细证明就是说,每位单独考虑形成一个01串,势能函数就是每位差分后的$1$的个数,太详细的啥我也不是很熟练了..要是有路过的大神能详细讲一下咩Q…
传送门 支持区间加w(i−ql+1)2" role="presentation" style="position: relative;">w(i−ql+1)2w(i−ql+1)2,将这个式子直接展开变成区间加wi2+w(ql−1)2+2w(1−ql)i" role="presentation" style="position: relative;">wi2+w(ql−1)2+2w(1−ql)iw…
传送门 线段树基本操作 区间加等差数列,维护区间和. 对于每个区间维护等差数列首项和公差,易证这两个东西都是可合并的,然后使用小学奥数的知识就可以切掉这题. 代码: #include<bits/stdc++.h> #define lc (p<<1) #define rc (p<<1|1) #define mid (T[p].l+T[p].r>>1) #define N 300005 #define mod 1000000007 #define ll long…
问题描述 给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0.请找到最长的一段连续区间,使得该区间内所有数字之和不超过p. 输入格式 第一行包含三个整数n,p,d(1<=d<=n<=300000,0<=p<=10^16).第二行包含n个正整数,依次表示序列中每个数w[i](1<=w[i]<=10^9). 输出格式 包含一行一个正整数,即修改后能找到的最长的符合条件的区间的长度. 样例输入 9 7 23 4 1 9 4 …
简介 zkw线段树虽然是线段树的另一种写法,但是本质上已经和普通的递归版线段树不一样了,是一种介于树状数组和线段树中间的存在,一些功能上的实现比树状数组多,而且比线段树好写且常数小. 普通线段树采用从上到下逐层递归的方式.zkw线段树则是从底层开始,目标直接明确,不需要线段树在确定区间的分治过程. 一些基础题 COGS264 数列操作 树状数组的题,据说模拟也能过hhhh. 单点修改,区间查询.各种数据结构都可搞,用最基本的zkw线段树实现. //zkw segment tree //by Cy…
1.数列操作   (array.pas/c/cpp) [问题描述] 现在有一个数列,最初包含0个数.现在要对数列操作n次,操作有3类. 1) a k,在数列的最后插入一个整数k 2) s 将最近插入的数删除. 3) t k 将数列恢复第k次操作前的状态 下面是一个例子,有12个操作 1 a 5 -> [5] => 5 加入数5 2 a 3 -> [5,3] => 3 加入数3 3 a 7 -> [5,3,7] => 7 加入数7 4 s -> [5,3] =>…
Mobile phones Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 14391   Accepted: 6685 Description Suppose that the fourth generation mobile phone base stations in the Tampere area operate as follows. The area is divided into squares. The…
http://poj.org/problem?id=3709 给定一个长度为n的非严格单调递增数列a1,...,an.每一次操作可以使数列中的任何一项的值减小1.现在要使数列中的每一项都满足其他项中至少有k-1项和它相等.求最少要对这个数列操作的次数. 输入:第一行为测试数据的组数T(1 ≤ T ≤ 20) 每组测试数据包含两行: 第一行为两个正整数n,k.n为数列中元素的个数 (2 ≤ n ≤ 500000): 第二行为非严格单调递增数列的n个整数,正整数的取值范围为[0, 500000].…
--DavidJing提供技术支持 现将今年7月份之前必须刷完的题目列举 完成度[23/34] [178/250] 第 1 章 贪心算法 √ [11/11] #10000 「一本通 1.1 例 1」活动安排 #10001 「一本通 1.1 例 2」种树 #10002 「一本通 1.1 例 3」喷水装置 #10003 「一本通 1.1 例 4」加工生产调度 #10004 「一本通 1.1 例 5」智力大冲浪 #10005 「一本通 1.1 练习 1」数列极差 #10006 「一本通 1.1 练习…
在标准库算法中,next_permutation应用在数列操作上比较广泛.这个函数可以计算一组数据的全排列.但是怎么用,原理如何,我做了简单的剖析. 首先查看stl中相关信息.函数原型: template<class BidirectionalIterator>   bool next_permutation(      BidirectionalIterator _First,       BidirectionalIterator _Last   );template<class B…
赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noip前的杂题训练,我也很无奈啊 做完了的扔最后,欢迎好题推荐 这么多题肯定是完不成了,能多做一道是一道吧 DP yyb真是强得不要不要的辣:http://www.cnblogs.com/cjyyb/category/1036536.html [ ] [SDOI2010]地精部落 https://www…
√√第一部分 基础算法(#10023 除外) 第 1 章 贪心算法 √√#10000 「一本通 1.1 例 1」活动安排 √√#10001 「一本通 1.1 例 2」种树 √√#10002 「一本通 1.1 例 3」喷水装置 √√#10003 「一本通 1.1 例 4」加工生产调度 √√#10004 「一本通 1.1 例 5」智力大冲浪 √√#10005 「一本通 1.1 练习 1」数列极差 √√#10006 「一本通 1.1 练习 2」数列分段 √√#10007 「一本通 1.1 练习 3」线…
第一部分 基础算法 第 1 章 贪心算法 1):「一本通 1.1 例 1」活动安排:按照结束时间排序,然后扫一遍就可以了. 2):「一本通 1.1 例 2」种树:首先要尽量的往区间重叠的部分种树,先按照右端点排序,每次贪心的从区间的最右边种,然后检查下一个区间是否缺少,缺的话就在最右边继续补. 3):「一本通 1.1 例 3」喷水装置:这题可以发现每个装置所能覆盖的区间是一个矩形,所以这题就变成了给了一堆线段,选出最少线段覆盖整个区间,按照右端点排序然后贪心就可以了. 4):「一本通 1.1 例…
1.求和问题 ★   输入文件:sum.in   输出文件:sum.out   简单对比时间限制:1.2 s   内存限制:128 MB [问题描述]     在一个长度为n的整数数列中取出连续的若干个数,并求它们的和. [输入格式]     输入由若干行组成,第一行有一个整数n    第二行有n个整数    第三行有一个整数m    下面m行,每行两个整数i与j(i<=j),表示求和的起始和终止位置. [输出格式] 输出有m行, 每行一个整数,表示这个数段数列的和. [输入样例] 输入文件 8…
Comet OJ 计算机(computer) 题目传送门 题目描述 小 X 有一台奇怪的计算机. 这台计算机首先会读入一个正整数 nn,然后生成一个包含 nn 个数的序列 aa. 一开始 a_i(1 \le i \le n)*a**i(1≤i≤n*) 的值均为 11. 接下来,小 X 会进行 n-1n−1 次操作,每次操作会输入一个指令,这个指令有 22 种情况: x +表示把此时序列中第 xx 个数 a_x*a**x* 和第 x+1x+1 个数 a_{x+1}ax+1 合并为一个数,值为 a_…
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Young Timofey has a birthday today! He got kit of n cubes as a birthday present from his parents. Every cube has a number ai, which is written on…