随笔分类 - 线段树
摘要:描述 给定长度为N(N<=105)的数列A,然后输入M行操作指令。 第一类指令形如“C l r d”,表示把数列中第l~r个数都加d。 第二类指令形如“M l r d”,表示把数列中第l~r个数都乘d。 第三类指令形如“Q l r”,表示询问数列中第l~r个数的和。 对于每个询问,输出一个整数表示答
阅读全文
摘要:描述 给定一个正整数数列 a1,a2,a3,⋯,an ,每一个数都在 0~p–1 之间。可以对这列数进行两种操作: 添加操作:向序列后添加一个数,序列长度变成 n+1; 询问操作:询问这个序列中最后 L 个数中最大的数是多少。 程序运行的最开始,整数序列为空。写一个程序,读入操作的序列,并输出询问操
阅读全文
摘要:区间修改/区间查询 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e5+10,inf = 0x3f3f3f3f; int n,m,a[N],add[N * 4]; ll sum[N
阅读全文
摘要:描述 给定n个数据,有两个操作,加减其中的一个数据,当然还可查询在某段数据的和。 输入 输入数据有多组,每组数据的第一行输入n,1=<n<=500000,代表数据的个数。第二行输入具体数据,数据为正整数,范围在1到10000.第三行输入m,1<=m<=100000,表示操作的次数。包含了修改和查询操
阅读全文
摘要:描述 从前有个人名叫 W and N and B,他有着天才般的记忆力,他珍藏了许多许多的宝藏。在他离世之后留给后人一个难题(专门考验记忆力的啊!),如果谁能轻松回答出这个问题,便可以继承他的宝藏。 题目是这样的:给你一大串数字(编号为 1 到 N,大小可不一定哦!),在你看过一遍之后,它便消失在你
阅读全文