范围查询

范围查询

描述

数轴上有n个点,对于任一闭区间 [a, b],试计算落在其内的点数。

输入

第一行包括两个整数:点的总数n,查询的次数m。

第二行包含n个数,为各个点的坐标。

以下m行,各包含两个整数:查询区间的左、右边界a和b。

输出

对每次查询,输出落在闭区间[a, b]内点的个数。

样例

见英文题面

限制

0 ≤ n, m ≤ 5×105

对于每次查询的区间[a, b],都有a ≤ b

各点的坐标互异

各点的坐标、查询区间的边界a、b,均为不超过10^7的非负整数

时间:2 sec

内存:256 MB

#include
#include
#include 
#include
using namespace std;int main() {static vector sum[5];int count = 0;char temp1;cout << "*********初始珠子\n";sum->resize(500);char* pC = sum->data();cin >> pC;//for (int i = 0; i < 5; i++) {	//初始珠子//	cin >> temp1;//	sum->push_back(temp1);//	count++;//}cout << "*********加珠子次数:\n";int n;cin >> n;int* a = new int[n];//位序char * b = new char[n];//插入的竹子的颜色int temp;vector::iterator it;//it = sum->begin();vector::iterator del;//del = sum->begin();vector::iterator m;vector::iterator jian;for (int i = 0; i < n; i++) {cout << "*********插入珠子\n";cin >> a[i] >> b[i];	//插入珠子//temp = a[i];//vector temp2;//vector::iterator temp2;//temp2.push_back(b[i]);//temp2 = b[i];//sum->insert(temp, temp2);//sum.insert(sum->begin(), 'a');vector::iterator it;it = sum->begin();sum->insert(it + a[i], b[i]);//sum->push_back(b[i]);scout << "*********检测重复\n";for (jian = sum->begin(); jian != sum->end()-2; jian++) {		//检测重复if (sum->size() >= 3) {cout << *jian << *(jian + 1) << *(jian + 2) << "*********开始检测...\n";if (*jian == *(jian + 1)) {if (*(jian + 2) == *(jian + 1)) {del = sum->begin();sum->erase(jian, jian + 3);cout << "*********删除了三个数\n";/*count = count - 3;*/jian = sum->begin();}else {cout << "********本次仅仅两个字母相同\n";}}else {cout << "********本次没有字符相同\n";}}else if (sum->size() == 0) {cout << "-";}else {break;}}cout << "*********输出剩下内容\n";for ( m = sum->begin(); m != sum->end(); m++) {		//输出内容/*	it = sum[i];a = sum[i];*/std::cout << *m;//printf("%c", sum[i]);}cout << endl;}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部