火车站台
时间限制: 1000MS 内存限制: 65536KB 题目描述:
在Z省,有若干个个城市坐落在一条直线上,从左到右依次标号1,2,3,…,其中每个城市有一个火车站点,现今已经开放了n条火车路线,第i条火车路线是从第Yi个城市到第Xi个城市,因为Z省地势奇特,标号小的城市地势较低,所以火车是从高往低开的,再通过神秘力量传送回高地,即Yi一定大于Xi,它在沿途的所有城市都会停靠(显然不包括起点Yi,但是包括终点Xi),火车停靠就需要火车站台来运营维护。火车站台随着运营线路的数量不同,其损耗速度、维护成本也各异,现在我们想知道所有站台中,所运营的线路数最大是多少。
输入描述
第一行一个数n。(1≤n≤100000)
接下来n行每行两个数Xi和Yi,分别代表第i条火车路线的终点和起点。(1≤Xi<Yi≤1e5)
输出描述
共一行,一个非负整数,表示最大运营路线数。
样例输入
4
4 7
2 6
2 5
1 2
样例输出
3
提示
第一条涉及站台6,5,4
第二条涉及站台5,4,3,2
第三条涉及站台4,3,2
第四条涉及站台1
所以显然站台4运营的线路最多,有3条
#include<iostream>
#include<algorithm>
#include<vector>
#include<unordered_map>
using namespace std;
class Solution {
public:
unordered_map<int, int>mp;
// 按照区间右边界排序
/* static bool cmp(const vector<int>& a, const vector<int>& b) {
return a[0] < b[0];
}*/
int MaxPlan(vector<int>& nums) {
// sort(nums.begin(), nums.end());
for (int j = 0; j < nums.size(); j++) {
mp[nums[j]]++;
}
int Max = INT32_MIN;
for (unordered_map<int, int>::iterator iter = mp.begin(); iter != mp.end(); iter++) {
Max = max(iter->second, Max);
}
return Max;
}
};
int main() {
int n;
cin >> n;
vector<int>vec2;
// vector<vector<int>>vec;
// vector<vector<int>>vec(n, vector<int>(2, 0));
int x, y;
int count=0;
while (cin >> x >> y) {
count++;
//vec1.push_back(x);
//vec1.push_back(y);
for (int i = x; i < y; i++) {
vec2.push_back(i);
}
if (count >=n) {
break;
}
}
int result = Solution().MaxPlan(vec2);
cout << result << endl;
return 0;
}
只完成36%,奇了怪了这个网站没ac过