火车站台 c++ 赛码网

						火车站台

时间限制: 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过

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值