编程训练2

1.世界杯开幕式会在球场C举行,球场C的球迷看台可以容纳M*N个球迷。在球场售票完成后,现官方想统计此次开幕式一共有多少个球队球迷群体,最大的球队球迷群体有多少人。

经调研发现,球迷群体在选座时有以下特性:

同球队的球迷群体会选择相邻座位,不同球队的球迷群体会选择不相邻的座位(注解:相邻包括前后相邻,左右相邻,斜对角相邻)

给定一个M*N的二维球场,0代表该位置没有坐人,1代表该位置已有选择,希望输出球队群体个数P,最大的球队群体人数Q

输入描述:

第一行,2个数字,M及N,使用英文逗号分隔

接下来M行,每行N的数字,使用英文逗号分隔

输出描述:

一行,2个数字,P及Q,使用英文逗号分隔

其中P表示球队群体个数,Q表示最大的球队群体人数

例:输入

10,10

0,0,0,0,0,0,0,0,0,0

0,0,0,1,1,0,1,0,0,0

0,1,0,0,0,0,0,1,0,1

1,0,0,0,0,0,0,0,1,1

0,0,0,1,1,1,0,0,0,1

0,0,0,0,0,0,1,0,1,1

0,1,1,0,0,0,0,0,0,0

0,0,0,1,0,1,0,0,0,0

0,0,1,0,0,1,0,0,0,0

0,1,0,0,0,0,0,0,0,0

输出:6,8

 

2.为了提高文章质量,每一篇文章(假设全部都是英文)都会有m民编辑进行审核,每个编辑独立工作,会把觉得有问题的句子通过下表记录下来,比如[1,10],1表示病句的第一个字符,10表示病句的最后一个字符。也就是从1到10着10个字符组成的句子,是有问题的。

现在需要把多名编辑有问题的句子合并起来,送个总编辑进行最终的审核。比如编辑A指出的病句是[1,10],[32,45];编辑B指出的病句是[5,16],[78,94]那么[1,10]和[5,16]是有交叉的,可以合并成[1,16][32,45][78,94]

输入描述:

编辑数量m,之后每行是每个编辑的标记的下表组合,第一个和最后一个下标用英文逗号分隔,每组下标之间用分号分隔

输出描述:

合并后的下标集合,第一个和最后一个下标用英文逗号分隔,每组下标之间用分号分隔。返回结果是从小到大递增排列

例:输入

3

1,10;32,45

78,94;5,16

80,100;200,220;16,32

输出: 1,45;78,100;200,220

 

3. 小a和小b玩一个游戏,有n张卡牌,每张上面有两个正整数x,y。取一张牌时,个人积分增加x,团队积分增加y。求小a,小b各取若干张牌,使得他们的个人积分相等,且团队积分最大。

输入描述:

第一行n

接下来n行,每行两个正整数x,y

输出描述:

一行一个整数

表示小a的积分和小b的积分相等时,团队积分的最大值

例:输入

4

3 1

2 2

1 4

1 4

输出:10

说明:当a抽取(2,2),b抽取(1,4),(1,4)时,两人个人积分都是2,团队积分最大,为10分

 

4. 两个长度为n的序列a,b。问有多少个区间[l,r]满足max(a[l,r])<min(b[l,r])即a区间的最大值小于b区间的最小值数据范围:n<1e5,a(i),b(i)<1e9

输入描述:

第一行一个整数n

第二行n个数,第i个为a(i)

第三行n个数,第i个为b(i)

0<1<=r<n

输出描述:

一行一个整数,表示答案

例1:输入

3

3 2 1

3 3 3

输出: 3

 

5. 小明在抖音里关注了N个主播,每个主播每天的开播时间是固定的,分别在S时刻开始开播,t时间结束。小明无法同时观看两个主播的直播。一天被分成了M个时间单位。请问小明每天最多能完整观看多少场直播?

输入描述:

第一行一个整数,代表N

第二行一个整数,代表M

第三行空格间隔的N*2个整数,代表s,t

输出描述:

一行一个整数,表示答案

例1:输入

3

10

0 3 3 7 7 0

输出:3

例2: 输入

3

10

0 5 2 7 6 9

输出:2

备注:数据范围1<=N<=10^5

2<=M<=10^6

0<=s(i),t(i)<M (s(i)!=t(i))

s(i)>t(i)代表时间跨天,但直播时长不会超过一天

posted @ 2018-08-12 16:49  heart_fox  阅读(800)  评论(2编辑  收藏  举报