早教吧作业答案频道 -->其他-->
招聘会人数c++题目招聘会人数来源元培-FromWHF描述某招聘机构举办招聘活动,事先不知道参会的确切人数。为了今后类似的招聘活动选择适当大小的场馆,招聘机构拟对每位参会人的进
题目详情
招聘会人数c++题目
招聘会人数
来源 元培-From WHF
描述
某招聘机构举办招聘活动,事先不知道参会的确切人数。为了今后类似的招聘活动选择适当大小的场馆,招聘机构拟对每位参会人的进出场馆时间进行记录。设第i个人进入会场的时间和离开会场的时间分别是xi, yi,那么,这个人在招聘会场的时间段t满足 xi <= t < yi。为简便起见,进出时间点用整数表示,且满足 0 <= xi < yi<1000。请统计,在这一天的招聘活动中,参会的总人数有多少;高峰时,最多有多少人同时在场。
关于输入
数据包括2行,这2行的数据个数相同:
第1行表示第i个人的到达时间xi,数之间用逗号间隔;
后1行表示第i个人的对应的离开时间yi,数之间也用逗号间隔。
例如:
2,5,4,6,7,3,1,6,2
5,6,7,7,8,4,3,9,4
表示有9个人,进出场的时间分别是:
[2,5),[5,6),[4,7),[6,7),[7,8),[3,4),[1,3),[6,9),[2,4)
关于输出
参加会议的总人数以及最多有多少人同时在场,两者之间以空格间隔。
上面例子中,参加会议的总人数为9人,最多的时候有3人同时在场。如,时间段:[2,5),[1,3),[2,4)
例子输入
2,5,4,6,7,3,1,6,2
5,6,7,7,8,4,3,9,4
例子输出
9 3
提示
总人数不超过1000人。
招聘会人数
来源 元培-From WHF
描述
某招聘机构举办招聘活动,事先不知道参会的确切人数。为了今后类似的招聘活动选择适当大小的场馆,招聘机构拟对每位参会人的进出场馆时间进行记录。设第i个人进入会场的时间和离开会场的时间分别是xi, yi,那么,这个人在招聘会场的时间段t满足 xi <= t < yi。为简便起见,进出时间点用整数表示,且满足 0 <= xi < yi<1000。请统计,在这一天的招聘活动中,参会的总人数有多少;高峰时,最多有多少人同时在场。
关于输入
数据包括2行,这2行的数据个数相同:
第1行表示第i个人的到达时间xi,数之间用逗号间隔;
后1行表示第i个人的对应的离开时间yi,数之间也用逗号间隔。
例如:
2,5,4,6,7,3,1,6,2
5,6,7,7,8,4,3,9,4
表示有9个人,进出场的时间分别是:
[2,5),[5,6),[4,7),[6,7),[7,8),[3,4),[1,3),[6,9),[2,4)
关于输出
参加会议的总人数以及最多有多少人同时在场,两者之间以空格间隔。
上面例子中,参加会议的总人数为9人,最多的时候有3人同时在场。如,时间段:[2,5),[1,3),[2,4)
例子输入
2,5,4,6,7,3,1,6,2
5,6,7,7,8,4,3,9,4
例子输出
9 3
提示
总人数不超过1000人。
▼优质解答
答案和解析
#include
using namespace std;
int main()
{ const int maxn=1001;
int sum,ans,i,x,end,t[maxn]={};//t[i]表示时间i的人数流动情况,有人进来就加1,出去就减1,={}是为了把其初值全赋为0
cin>>x;i=1;
t[x]++;
while(scanf(",%d",&x)>0) {t[x]++;i++;}
cout< cin>>x;
t[x]--;
end=x;//招聘会结束时间
while(scanf(",%d",&x)>0)
{ t[x]--;
if(x>end) end=x;
}
ans=sum=t[0];
for(i=1;i { sum+=t[i];//sum=t[0]+...+t[i]表示到时间i时场内的人数
if(sum>ans) ans=sum;
}
cout< }
这道题的时间范围不是很大,因此可以像上面直接开数组t[i]。
更好的算法是读入进场时间a[]和出场时间b[]两个数组,再分别排好序,即(以题目数据为例)
1 2 2 3 4 5 6 6 7
3 4 4 5 6 7 7 8 9
不妨设第i个人在a[i]时进场,在b[i]时离场,虽然这已与题目中数据每个人对应的进出场时间不同。
接下来
ans=0;
i=s=0;
for(j=0;j { while(a[i] if(i-s>ans) ans=i-s;
s++;//因为接下要看时间b[j+1]-1时的人数,则b[j]代表的这个人离场
}
using namespace std;
int main()
{ const int maxn=1001;
int sum,ans,i,x,end,t[maxn]={};//t[i]表示时间i的人数流动情况,有人进来就加1,出去就减1,={}是为了把其初值全赋为0
cin>>x;i=1;
t[x]++;
while(scanf(",%d",&x)>0) {t[x]++;i++;}
cout< cin>>x;
t[x]--;
end=x;//招聘会结束时间
while(scanf(",%d",&x)>0)
{ t[x]--;
if(x>end) end=x;
}
ans=sum=t[0];
for(i=1;i
if(sum>ans) ans=sum;
}
cout<
这道题的时间范围不是很大,因此可以像上面直接开数组t[i]。
更好的算法是读入进场时间a[]和出场时间b[]两个数组,再分别排好序,即(以题目数据为例)
1 2 2 3 4 5 6 6 7
3 4 4 5 6 7 7 8 9
不妨设第i个人在a[i]时进场,在b[i]时离场,虽然这已与题目中数据每个人对应的进出场时间不同。
接下来
ans=0;
i=s=0;
for(j=0;j
s++;//因为接下要看时间b[j+1]-1时的人数,则b[j]代表的这个人离场
}
看了 招聘会人数c++题目招聘会人...的网友还看了以下:
2015年是中国人民抗日战争暨世界反法西斯战争胜利70周年,我国将在9月3日举行包括纪念大会、阅兵 2020-06-29 …
招聘会人数c++题目招聘会人数来源元培-FromWHF描述某招聘机构举办招聘活动,事先不知道参会的 2020-07-06 …
在大学生毕业生招聘会上,出现了不少以“专职顾问”身份陪伴子女的“家长团”。对此,很多招人单位表示,不 2020-11-14 …
运动神经太发达是否影响智商?想研究理论物理,现在天天锻炼.我是指精通武术一类,会不会因为大脑储存几近 2020-11-22 …
有关校园招聘会的说法正确的是()①是人们求职的渠道之一②是大学毕业生求职的主要渠道③参加招聘会的用人 2020-12-17 …
我们经常会在招聘会上看到这样一幕:一些大爷、大妈在各个应聘摊位前忙个不停,填写了各类求职应聘表,并且 2020-12-21 …
我们经常会在招聘会上看到这样一幕:一些大爷、大妈在各个应聘摊位前忙个不停,填写了各类求职应聘表,并且 2020-12-21 …
在一个招聘会上,一位妈妈替她26岁的儿子填了六十多份各类求职应聘表,而她的儿子却在家一天到晚除了吃饭 2020-12-21 …
下列各句中,没有语病的一句是A.在校园招聘会中,综合大型招聘会是为了企业展示形象,专场小型招聘会则是 2021-01-01 …
下列各句中,没有语病的一句是A.在校园招聘会中,综合大型招聘会是为企业展示形象,专场小型招聘会则是为 2021-01-01 …