车站乘车(c++)

题目描述

查看题目信息

一条铁路上有n个车站,编号为1至n,某一天,从1至n的方向有m个人乘车,每节车厢最多容纳k人,求这一天从1站到n站至少安排多少节车厢才能满足需求。(注意:到达每一站时,先上车,再下车)

输入格式

第一行为n,m,k,表示车站数,要乘车的人数,车厢容量。

接下来m行,每行两个数si和ti,表示第i位乘客的上车站和下车站。

输出格式

一个整数,最小车厢数

样例输入

7 8 4
2 5
1 3
5 7
6 7
4 6
2 6
1 7
2 3

样例输出

2

问题提示

对于100%数据,n<=200000,0<m,k<=100000, 0<si<ti<=n

代码

#include<iostream>
using namespace std;
int a[1000001],b[1000001];
int main()
{
	int m,n,k,s,t;
	cin>>n>>m>>k;
	for(int i=1;i<=m;i++)
	{
		cin>>s>>t;
		b[s]++;
		b[t+1]--;
	}
	int maxs=0;
	for(int i=1;i<=n;i++)
	{
		a[i]=a[i-1]+b[i];
		maxs=max(maxs,a[i]);
	}
	if(maxs%k!=0)
	{
		cout<<(maxs/k+1);
	}
	else
	{
		cout<<maxs/k;
	}
 	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
c++城市公交查询系统 1.设有一文件对象in_file,若在while循环中用in_file>> 每次从文件中得到一个字符串直到文件结束, 如果用in_file直接来判断文件是否结束, 则文件末的那个字符串会得到两次。 而用文件in_file.eof()来判断则会得到正确的结果。 2.用delete []释放字符串空间时,老是有问题, 其中的原因之一是你原来申请的空间不够大, 后来往这个空间中放了过多的内容以至越界, 这时候会发生运行时的错误。 3.把一个对象作为参数传给另一个对象的成员函数时, 程序不能正常结束,即系统删除对象时有问题; 而使用指针或者引用传递参数时不仅不会出现问题, 而且可以人为的删除对象。 我个人认为这很有可能是值传递的原因, 当把一个对象作为实参传给一个函数时,函数形参拷贝了实参的值, 这时,如果对象有指针成员,那么形参的指针成员的值和 实参的指针成员的值将完全一样, 即它们指向的是同一块内存,所以当函数调用结束的时候, 函数的形参将会被系统撤消, 这时,形参调用析构函数,释放用new动态申请的内存。在函数的外面, 作为实参的对象的指针成员其实已经被撤消了,所以当程序结束, 系统撤消这个对象时,这个对象又要调用析构函数来释放指针成员, 但这时指针其实已经指向了非法的空间,导致出错。 bus 文件夹的内容记录的是每条线路的信息,对应于bus 类。 每个文件以线路名称(即车名,忽略前面的k)命名。 每个文件的内容组织如下:(共分为6行,以回车键作为行结束标志) 第一行为“线路名称:#### ”,其中####用具体的线路名称代替; 第二行为“上行站点:####”。 第三行为“下行站点:####”。 第四行为“首班车时间:####”。 第五行为“末班车时间:####”。 第六行为“票价:####”。 注:若不分“上行站点”和“下行站点”, 则第二行为“站点名称:####”, 第三行为空行;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值