Untitled

实验五

1【问题描述】

​ 在城市里,快速公交(BRT)线路为一条直线,在其线路上有 n 个交叉路口,在每个路口都有一个交通信号灯,在红灯与绿灯之间周期性循环。

​ 在绿灯亮起持续 g 秒的期间,允许通行,之后变为红灯,保持 r 秒,红灯期间禁止车辆通行。如果一辆车正好在变为红灯的时候到达交叉口,它应该停车,但是如果是正好变成绿灯,车辆就可以继续行驶。

09afdd46c586a3fc251b08981ba67acec5342041.png

​ 所有的交通灯都有相同的变化时间,并且是同步的。换句话说,对于所有的交通灯来说,红灯(和绿灯)的相位是相同的,它们都在第 0 时刻开始变为绿色。

​ BRT公司已经设计好了公交车通过每个路段的时间,路段是指两个连续的交通灯之间的距离,或者是起点与第一个交通灯的距离,或者是最后一个交通灯与终点的距离,更精确地讲,BRT专家设计了 n + 1 个正整数 li,时间以秒计,表示公交车从起点到终点时穿过第 i 路段的时间,l1 为从起点到第一个路口的时间, *ln+*1 表示从最后一个路口·到终点的时间。

​ 在一天内有 q 辆公交车离开起点,第 i 辆车在时刻 ti(以秒计)出发,公司管理者想知道公交车在什么时间可以到达终点。

【输入形式】

​ 输入的第一行为三个整数 n、g、r,分别表示交叉路口的个数,绿灯持续的时间和红灯持续的时间。

​ 接下来一行为 n + 1 整数 li , i =1, …, n + 1,表示公交车通过第 i 个路段的时间。

​ 接下来的一行为单一的一个整数 q,表示一天内从起点出发的公交车数量,接下来的一行为 q 个整数,表示每辆公交车离开起点的时间。

【输出形式】

​ 输入为一行 q 个整数,分别表示每辆公交车到达终点的时间。

【样例输入】

1 3 2
5 2
5
1 2 3 4 5

【样例输出】

8 9 12 12 12

2

【问题描述】

​ 小希最近找到了大公司的客户经理的新工作,每天工作时间为 L 分钟,他主要为 n 个固定的高端客人服务,第 i 个客人会在第 ti 分钟到来,他需要为其服务 li 分钟,在此期间不会有其他客人到来。

​ 他喜欢在工作的间隙放松一下,喝杯咖啡,或者做做简单的运动,每次需要 a 分钟的时间,如果可以,这样惬意的事情他能够连续做好多次。但在有顾客的时间里,他必须在工作岗位上,否则,他会被投诉。那么,在一天的工作时间之内,他最多有几次这样轻松的时光?
【输入形式】

​ 输入的第一行包含3个整数 nLa

​ 接下来的 n 行,每行两个整数 tili,分别表示第i个客人到来的时间和需要服务的时间,输入保证 ti+liti+1

【输出形式】

​ 输出为一个整数,表示小希在一天的工作时间内最多可以放松多少次?

【样例输入】

2 11 3
0 1
1 1

【样例输出】

3

【样例说明】

每天都是全新的一天,昨天的工作不影响今天哟!
【评分标准】

3

【问题描述】

​ 给定 n (1 ≤ n ≤ 24)个正整数a1、a2、…、an,请判断这 n 个数是否是连续 n 个月份的天数,这些月份可以跨年度。

【输入形式】

​ 输入第一行为一个整数 n,第二行为n个正整数 a1、a2、…、an(28 ≤ a**i ≤ 31)。

【输出形式】

输出Yes或No。
【样例输入1】

4
31 31 30 31

【样例输出1】

Yes

【样例输入2】

2
30 30

【样例输出2】

No

【样例输入3】

5
29 31 30 31 30

【样例输出3】

Yes

【样例说明】

在第一个样例中,连续4个数是7、8、9、10月份的天数

在第二个样例中,没有哪两个连续月份的天数都为30

在第三个样例中,是某闰年的2、3、4、5、6月份的天数
【评分标准】

4

问题描述】

某班有 n 个学生,下课铃一响,大家都去饮水机喝水,没有两个人能同时使用饮水机,因此,同学们必须排队取水。

i 个学生在第 li 秒来到队尾,如果同一时刻有多个学生来到队伍,则编号大的排在编号小的后面,排在队伍最前面的学生将花1秒的时间取水,然后离开,其他人在后面排队。如果到第 ri 秒学生 i 还没有取到水且他前面还有人,他将不打水而直接离开队伍。

​ 编程求每个学生取到水的时间。
【输入形式】

​ 输入第一行为一个整数T,表示测试用例的个数。

​ 接下来是T个测试用例,每个用例的第一行为一个整数 n,表示学生数,接下来的 n 行,每行两个整数 liri ,分别表示第 i 个同学在第 li 秒来到队伍末尾,如果第 ri 秒还没取到水则离开队伍的时间。
【输出形式】

​ 对于每个测试用例,输出 n 个整数,表示第 i 个学生取到水的秒数,如果没取到水则为0
【样例输入】

2
2
1 3
1 4
3
1 5
1 1
2 3

【样例输出】

1 2 
1 0 2

【样例说明】
【评分标准】

5

【问题描述】

这几天同学们总是对阿迪议论纷纷,这使得他很烦恼,似乎产生了一些抑郁,头也有点痛,打不起精神,他只好去看医生。然而,他只有去看过 n 个医生之后才能确诊病情,每个医生都需要上一个医生的诊断结果,因此他必须按顺序去预约每个医生,也就是说,他必须先去看医生1,然后再去看医生2,然后是医生3,等等。只有到最后一个医生那里才能确诊,且每天只能看一个医生。

从今天开始,每个医生都有一个固定的出诊安排表,医生 i 在第 si 天看病人,然后在之后的每个第 di 天看诊。因此,他只在 si、si+di、si+2di、… 这些天工作。

预约每个医生有些困难,他想知道看完所有医生至少需要多少天?
【输入形式】

​ 输入的第一行一个正整数 n ,表示医生的数量。

​ 接下来的 n 行,每行两个正整数 sidi,表示第 i 个医生的工作情况。
【输出形式】

​ 输出一行一个整数,表示阿迪看完最后一个医生的天数。
【样例输入】

3
2 2
1 2
2 2

【样例输出】

4

【样例说明】

第1位医生从第2天开始看病,然后在第4、6、8…天看诊

第2位医生从第1天开始看病,然后在第3、5、7…天看诊

第3位医生从第2天开始看病,然后在第4、6、8…天看诊

因此,阿迪可以在第2天去看第1位医生,然后在第3天去看第2位医生,第4天看第3位医生。
【评分标准】

6

【问题描述】

​ 冬天到了,松雅觉得是时候给她的花园浇水了。

​ 她的花园由 n 个连续的苗圃组成,编号从 1*~n*。其中的 k 个苗圃安装有水龙头(第 i 个水龙头位于苗圃 xi),当水龙头打开的时候,可以同时给相邻的苗圃浇水。1个时间单位后,她可以给苗圃 xi 浇好水,2个时间单位后,她可以给 [*xi-1, xi+*1] 范围内的苗圃(如果有)浇好水,在 j 个时间单位后,她可以给[xi-(j-1),xi+(*j-*1)]内的苗圃(如果有)浇好水。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kB8OB432-1636941942409)(Untitled.assets/154233799287504314435147.png)]

图中白色表示该苗圃没有水龙头,红色表示该苗圃有一个水龙头

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FO0h2W8B-1636941942411)(Untitled.assets/154233803498703267935147.png)]

水龙头打开2个时间单位后,白色部分表示没有浇到水的苗圃,蓝色部分表示已浇水的苗圃

​ 松雅希望在同一时刻打开所有水龙头,她想知道,最少到多少个时间单位以后整个花园都能浇好水。

【输入形式】

​ 第一行一个整数表示测试数据的组数。

​ 接下来T组测试数据 ,每组数据的第一行包含两个整数 nk,分别表示她的花园中的苗圃数和水龙头数,接下来的一行为 k 个整数 xi,表示第 i 个水龙头所在的位置,输入保证对于每个 i >=2,xi - 1 < xi

​ 本题只考虑整数单位时间。
【输出形式】

​ 对于每个测试用例,每个用例输出一行一个整数,表示所有水龙头同时打开后整个花园浇好水所需要的最小时间单位数。
【样例输入】

3
5 1
3
3 3
1 2 3
4 1
1

【样例输出】

3
1
4

【样例说明】
【评分标准】

7

【问题描述】

​ 小希想去拜访一位朋友,他家位于坐标轴的0点,他朋友的家在坐标点 m(m>0)

​ 在这条线路上有多路公交车通行,运行区间位于[x,y]之间,x、y为整数,在该区间内的任意整数点都设有公交站,小希可以在任意站上下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QHKIktvh-1636941942413)(Untitled.assets/154226682883406407735137.png)]

请编程确定小希是否可以搭乘公交车到达朋友家。

【输入形式】

​ 输入第1行为两个正整数 nm,表示公交车的线路数以及小希朋友家的位置。

​ 接下来的 n 行,每行两个整数a、b,表示每路公交车的起点和终点,输入保证a<bb<100000000
【输出形式】

​ 输出Yes或No,表示小希是否能搭乘公交去拜访朋友。
【样例输入】

3 5
0 2
2 4
3 5

【样例输出】

Yes

【样例说明】

样例中,小希可以从0(家)坐公交车到达2,然后坐公交到3,再从3到5(朋友家)。
【评分标准】

8

【问题描述】

​ 猴子王国里有n只猴子,第i只猴子有ri种技能。

​ 猴子a可以是猴子b的导师,当且仅当猴子a的技能严格大于猴子b的技能(ra>rb),并且a和b无性格冲突,有性格冲突的猴子在一起会打架。

​ 给定每个猴子的技能值,以及有性格冲突的k对猴子。对于每只猴子,找出可以成为其他猴子导师的个数。
【输入形式】

​ 第一行包含两个正整数n和k,表示猴子的数量以及有性格冲突的猴子的对数。

​ 第二行为一个整数序列,r1、r2、…、rn,其中ri表示第i只猴子的技能数。

​ 接下来的k行,每行为两个正整数x、y(1≤ x、y≤n,x≠ y),表示有性格冲突的一对猴子编号,输入保证(x,y)和(y,x)不会同时出现。

【输出形式】

​ 输出n个整数,第i个整数表示第i个猴子能成为多少只猴子的导师。
【样例输入】

4 2
10 4 10 15
1 2
4 3

【样例输出】

0 0 1 2

【样例说明】
【评分标准】

9

【问题描述】

​ 阿迪和他的朋友一共k个人,分吃n颗糖,每颗糖只能分给他们中的某个人或者丢弃。

​ 人的编号从1到k,阿迪是第1号。阿迪将选择一个正整数x来分糖,他先给自己x颗,然后给下一个人x颗,再给第三个人x颗,如此继续,循环往复。剩余的(不能整除x的部分)将会丢弃。

​ 阿迪不能选择大于M的x去分配,因为这样会被别人认为太贪心(嘿嘿,其实他真的很贪心)。还有,他不能选择一个小的x,使得有人会收到糖的次数超过D,这样会被认为分得太慢。

​ 阿迪想请你找出一个有效的x,保证让阿迪能得到最多的糖。
【输入形式】

​ 输入为一行4个整数n、k、M和D,分别表示糖的数量、人的数量、每次能分配的最大数量、人可以收到糖的最大次数。

【输出形式】

​ 输出为一个整数,表示阿迪自己能收到的最大可能的糖的颗数。
【样例输入1】

20 4 5 2

【样例输出1】

8

【样例输入2】

30 9 4 1

【样例输出2】

4

【样例说明】

在第一个样例中,阿迪应该选择x=4,4颗给自己,4颗给第2个人,4颗给第3个人,4颗给第4个人,剩下的4颗给他自己。没有人收到糖的次数超过2,而他自己得到了8颗糖。

【评分标准】

10

【问题描述】

​ 阿迪在一个大型机场担任飞机跑道交通管制员,他控制一个通常用于着陆的跑道。因此,他有一个未来一段时间飞机着陆的时间安排,每次着陆持续时间为1分钟。

​ 他被要求在安排表中插入一次起飞,起飞本身需要1分钟,但出于安全考虑,起飞和着陆之间应有至少s分钟的时间间隔。

​ 请找出阿迪能插入的起飞的最早时间。

【输入形式】

​ 输入的第一行包含两个整数n和s(1≤n≤1001≤n≤100, 1≤s≤601≤s≤60),分别表示在时间安排表中的着陆的航班数量以及在着陆与起飞之间的最小允许时间(以分钟计)。

​ 接下来的n行,每行包含两个整数h和m (0≤h≤230≤h≤23, 0≤m≤590≤m≤59),表示飞机着陆的时间,以小时和分钟计,从当前时刻开始(也就是说当前时刻是0时0分),这些时间以递增的顺序给出。

【输出形式】

​ 输出两个整数h和m,代表可以插入的起飞的最早时间的小时和分钟。
【样例输入】

6 60
0 0
1 20
3 21
5 0
19 30
23 40

【样例输出】

6 1

【样例说明】
【评分标准】

11

【问题描述】

​ 松雅认为,拥有自己的旅馆是赚钱的最好方式,因为她可以在任何她想要的地方赚钱和休闲。

​ 松雅生活的国度是一个无尽头的线状型,在这条直线的每个整数坐标上有一座城市。她有n个旅馆,第i个旅馆位于具有坐标xi的城市。松雅是位聪明的女孩,她不会在同一城市开设两家或多家旅馆。

​ 松雅想拓展业务,因此,她决定开更多的旅馆。她想让新开的旅馆到所有其他旅馆的最短距离等于d,这个女孩知道有很多地方可以建造这样的旅馆。她想知道有多少可以建造一家新旅馆的城市。

​ 在一家自己的旅馆,她懒洋洋地躺在按摩浴缸里,要求你帮她找出能建新旅馆的城市数目,使得从原来的n家旅馆到新的旅馆的最小距离等于d。

【输入形式】

输入的第一行包含两个整数n和d,表示松雅现有的旅馆数量和新旅馆到其他所有旅馆的最短距离。

第二行包括n个不同的整数,以严格递增的形式给出,表示现有的旅馆所在城市的坐标。
【输出形式】

输出为一个整数,表示松雅可以新建旅馆的城市坐标的数量。
【样例输入】

4 3
-3 2 9 16

【样例输出】

6

【样例说明】
【评分标准】

12

【问题描述】

​ 小女孩塔雅在一栋多层建筑中攀爬楼梯,每次爬过一个楼梯,她喜欢从1到顶数楼梯的台阶级数,并大声地说出每个数字。如果她爬了两个楼梯,第一个有3级,第二个有4级,她将读出数字1、2、3、1、2、3、4。

​ 给出塔雅读出的所有数字,判断她爬了多少楼梯,且输出每个楼梯有多少台阶级数?
【输入形式】

​ 输出的第一行为一个整数n,表示塔雅读出了多少个数字。

​ 第二行包含n个整数a1、a2、…、an,表示塔雅攀爬楼梯时读出的数字,按顺序从第1个到最后一个,当攀爬一个有x级的楼梯时,她将依次读出1、2、…、x。
【输出形式】

​ 输出的第一行一个t,表示塔雅攀爬的楼梯个数,第二行输出t个数,表示每个楼梯的台阶数。
【样例输入】

7
1 2 3 1 2 3 4

【样例输出】

2
3 4

【样例说明】
【评分标准】

13

【问题描述】

​ 春节期间小希计划乘坐火车去旅行。开始时,火车位于位置1,目的地在位置L。火车的速度是1单位长度/分钟(也就是第1分钟火车在位置1,第2分钟在位置2,等等)。

​ 中国人过年都喜欢挂灯笼,在该路线上就有许多灯笼,它们位于能被 v 整除的位置上(也就是说,第1个灯笼在位置 v ,第2个灯笼在位置2v,等等)。

​ 有另外一辆火车停留在从位置 lr 的地方。

​ 显然,当 p 能被 v 整除的时候,且该处没有火车停留(p∉[l;r]),小希就可以看到处于位置 p 上的灯笼。因此,灯笼的位置如果被停留的火车遮挡,小希就看不见这些灯笼。

​ 请输出小希在旅行期间能看到的灯笼数。

【输入形式】

​ 输入的第一行为一个整数T,表示测试数据的组数。

​ 接下来的T行,每行4个整数,为L、v、l、r,分别表示目的地的位置、灯笼的间距、停留火车的位置区间段。

【输出形式】

​ 输出为T行,对应每个测试用例的输出结果。
【样例输入】

4
10 2 3 7
100 51 51 51
1234 1 100 199
1000000000 1 1 1000000000

【样例输出】

3
0
1134
0

【样例说明】
【评分标准】

14

【问题描述】

​ 神经网络在机器学习领域非常流行。神经网络由多层组成,它包含一个输入层可以输入参数x(程序的输入)。然后输入通过多个隐藏层,在最后一层获得一个输出,称为输出层。

​ 我们有一个包含N个隐藏层的非常简单的神经网络,每层包含一个神经元。每个神经元有两个相关的值:wi和bi,分别表示神经元的权重和偏移。給定神经元的一个输入x,将生成一个输出(wi*x)+bi。

​ 因此,一个输入x被神经网络按照以下方式进行传输。第一个隐藏层接受输入x,生成y=w1x+b1,作为第二个神经元的输入。然后,第二个神经元接受输入y,生成一个输出z=w2y+b2,重复这个过程,在最后的第N个神经元可以得到一个唯一的输出。

​ 对于一些用户,我们想知道他们是否是垃圾邮件发送人。每个用户有整数的用户ID,取值范围为minX~maxX(包括两个端点,1=<minX=<maxX=<1000000000)。我们把每个用户ID作为神经网络的第一层的输入,如果最终输出为偶数,则该用户不是垃圾邮件发送者,否则,该用户就是垃圾邮件发送者。

​ 编程统计非垃圾邮件发送者和垃圾邮件发送者的数量。

【输入形式】

​ 输入的第一行为一个单一的整数T,表示测试数据的组数,接下来是T组测试数据的描述。

​ 每个测试数据的第一行为三个用空格分隔的整数N、minX、maxX,接下来的N行,每行包含两个用空格分隔的整数wi和bi,表示第i个神经元的权重和偏移。
【输出形式】

​ 对于每个测试用例,输出两个用空格分隔的整数,分别表示非垃圾邮件发送者和垃圾邮件发送者的数量。
【样例输入】

3
1 1 2
1 2
2 1 4
2 4
2 3
3 2 1000000000
2 4
2 2
5 4

【样例输出】

1 1
0 4
999999999 0

【样例说明】
隐藏层接受输入x,生成y=w1x+b1,作为第二个神经元的输入。然后,第二个神经元接受输入y,生成一个输出z=w2y+b2,重复这个过程,在最后的第N个神经元可以得到一个唯一的输出。

​ 对于一些用户,我们想知道他们是否是垃圾邮件发送人。每个用户有整数的用户ID,取值范围为minX~maxX(包括两个端点,1=<minX=<maxX=<1000000000)。我们把每个用户ID作为神经网络的第一层的输入,如果最终输出为偶数,则该用户不是垃圾邮件发送者,否则,该用户就是垃圾邮件发送者。

​ 编程统计非垃圾邮件发送者和垃圾邮件发送者的数量。

【输入形式】

​ 输入的第一行为一个单一的整数T,表示测试数据的组数,接下来是T组测试数据的描述。

​ 每个测试数据的第一行为三个用空格分隔的整数N、minX、maxX,接下来的N行,每行包含两个用空格分隔的整数wi和bi,表示第i个神经元的权重和偏移。
【输出形式】

​ 对于每个测试用例,输出两个用空格分隔的整数,分别表示非垃圾邮件发送者和垃圾邮件发送者的数量。
【样例输入】

3
1 1 2
1 2
2 1 4
2 4
2 3
3 2 1000000000
2 4
2 2
5 4

【样例输出】

1 1
0 4
999999999 0

【样例说明】
【评分标准】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值