摘要:
描述 给定长度为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 个数中最大的数是多少。 程序运行的最开始,整数序列为空。写一个程序,读入操作的序列,并输出询问操 阅读全文
摘要:
1.常见的排序算法的平均时间复杂度、最好情况的时间复杂度、最坏情况的时间复杂度、稳定性、是否基于比较的表格 这里,n是要排序的元素数量,k是元素的取值范围。对于基于比较的排序算法,k没有意义,因为这些算法不关心元素的具体值,只关心元素之间的相对顺序。对于非基于比较的排序算法(如计数排序、桶排序和基数 阅读全文
摘要:
区间修改/区间查询 #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,表示操作的次数。包含了修改和查询操 阅读全文
摘要:
描述 给出若干个整数,询问其中是否有一对数的和等于给定的数。 输入 第一行是整数n(0 < n ≤ 100,000),表示有n个整数。 第二行是n个整数。整数的范围是在0到108之间。 第三行是一个整数m(0≤m≤230),表示需要得到的和。 输出 若存在和为m的数对,输出两个整数,小的在前,大的在 阅读全文
摘要:
描述 给定一个数组 A 和一些查询 Li,Ri,求数组中第 Li 至第 Ri 个元素之和。 小蓝觉得这个问题很无聊,于是他想重新排列一下数组,使得最终每个查询结果的和尽可能地大。 小蓝想知道相比原数组,所有查询结果的总和最多可以增加多少? 输入 输入第一行包含一个整数 n。 第二行包含 n 个整数 阅读全文
摘要:
描述 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为:Σ(ai-bi)^2, i=1~n,其中ai表示第一列火柴中第i个火柴的高度,bi表示第二列火柴中第i个火柴的高度。 每列火柴中相邻两根火柴的位置都可 阅读全文
摘要:
描述 2*N名编号为1~2N的选手共进行R轮比赛。每轮比赛开始前,以及所有比赛结束后,都会按照总分从高到低对选手进行一次排名。选手的总分为第一轮开始前的初始分数加上已参加过的所有比赛的得分和。总分相同的,约定编号较小的选手排名靠前。 每轮比赛的对阵安排与该轮比赛开始前的排名有关:第1名和第2名、第3 阅读全文
摘要:
描述 给定 一个序列,求其逆序对的总数。所谓逆序对是指:序列a中存在两个元素a[i]和a[j],满足 i < j 且 a[i]>a[j],则a[i]和a[j]为一个逆序对。 输入 第一行为正整数n(n<=100000)。 第二行有n个正整数,最大不超过1000000。 输出 输出逆序对的总数。 样例 阅读全文