1.事件推送
(100分)标题:事件推送 | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限
【事件推送】同一个数轴X上有两个点的集合A={A , A , …, A }和B={B , B , …, B },A 和B 均为正整数,A、B已经按照从小到大排好序,A、B均不为空,给定一个距离R(正整数),列出同时满足如下条件的所有(A , B )数对:
1)A <= B
2)A , B 之间的距离小于等于R
3)在满足1)2)的情况下,每个A 只需输出距离最近的B
4)输出结果按A 从小到大的顺序排序
输入描述:
第一行三个正整数m,n,R
第二行m个正整数,表示集合A
第三行n个正整数,表示集合B
输入限制:
1<=R<=100000,1<=n,m<=100000,1<=Ai,Bj<=1000000000
输出描述:
每组数对输出一行Ai和Bj,以空格隔开
示例1:
输入:
4 5 5
1 5 5 10
1 3 8 8 20
输出:
1 1
5 8
5 8
2.停车场车辆统计
(100分)标题:停车场车辆统计 | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限 【停车场车辆统计】特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡 车占三个车位(长度3),统计停车场最少可以停多少辆车,返回具体的数目。
输入描述:
整型字符串数组cars[],其中1表示有车,0表示没车,数组长度小于1000。
输出描述:
整型数字字符串,表示最少停车数目。
示例1:
输入
1,0,1
输出
2
3.任务最优调度
(200分)标题:任务最优调度 | 时间限制:1秒 | 内存限制:65536K | 语言限制: 不限 【任务最优调度】 给定一个正整型数组表示待系统执行的任务列表,数组的每一个元素代表一个任务,元素的值表示该任务的类型。请计算执行完所有任务所需的最短时间。任务执行 规则如下: 1、任务可以按任意顺序执行,且每个任务执行耗时间均为1个时间单位。 2、两个同类型的任务之间必须有长度为N个单位的冷却时间,比如:N为2时,在时间K执行了类型3的任务,那么K+1和K+2两个时间不能执行类型3任务。 3、系统在任何一个单位时间内都可以执行一个任务,或者等待状态。 说明:数组最大长度为1000,数组最大值1000.
输入描述:
第一行记录一个用半角逗号分隔的数组,数组长度不超过1000,数组元素的值不超过1000 第二行记录任务冷却时间,N为正整数,N<=100。
输出描述:
输出为执行完所有任务所需的最短时间。
示例1:
输入:
2,2,2,3
2
输出:
7
1.按身高和体重排队
(100分)标题:按身高和体重排队 | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限 【按身高和体重排队】 某学校举行运动会,学生们按编号(1、2、3…n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列;对于身高体重都相同的人,维持 原有的编号顺序关系。请输出排列后的学生编号。
输入描述:
两个序列,每个序列由n个正整数组成(0 < n <= 100)。第一个序列中的数值代表身高,第二个序列中的数值代表体重。
输出描述:
排列结果,每个数值都是原始序列中的学生编号,编号从1开始
示例1:
输入
4
100 100 120 130
40 30 60 50
输出
2 1 3 4
2.判断一组不等式是否满足约束并输出最大差
(100分)标题:判断一组不等式是否满足约束并输出最大差 | 时间限制:1秒 | 内存限制:65536K | 语言限制: 不限 【判断一组不等式是否满足约束并输出最大差】给定一组不等式,判断是否成立并输出不等式的最大差(输出浮点数的整数部分),要求:1)不等式系数为double类 型,是一个二维数组;2)不等式的变量为int类型,是一维数组;3)不等式的目标值为double类型,是一维数组;4)不等式约束为字符串数组,只能 是:">",">=","<","<=","=",例如,不等式组:
a11*x1+a12*x2+a13*x3+a14*x4+a15*x5<=b1;
a21*x1+a22*x2+a23*x3+a24*x4+a25*x5<=b2;
a31*x1+a32*x2+a33*x3+a34*x4+a35*x5<=b3;
最大差=
max{ (a11*x1+a12*x2+a13*x3+a14*x4+a15*x5-b1),
(a21*x1+a22*x2+a23*x3+a24*x4+a25*x5-b2),
(a31*x1+a32*x2+a33*x3+a34*x4+a35*x5-b3) },类型为整数(输出浮点数的整数部分)
输入描述:
1)不等式组系数(double类型):
a11,a12,a13,a14,a15
a21,a22,a23,a24,a25
a31,a32,a33,a34,a35
2)不等式变量(int类型):
x1,x2,x3,x4,x5
3)不等式目标值(double类型):b1,b2,b3
4)不等式约束(字符串类型):<=,<=,<=
输入:a11,a12,a13,a14,a15;a21,a22,a23,a24,a25;a31,a32,a33,a34,a35;x1,x2,x3,x4,x5;b1,b2,b3;<=,<=,<=
输出描述:
true 或者 false, 最大差
示例1:
输入
2.3,3,5.6,7,6;11,3,8.6,25,1;0.3,9,5.3,66,7.8;1,3,2,7,5;340,670,80.6;<=,<=,<=
输出
false 458
3.分月饼
标题:分月饼 | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限
【分月饼】
题目描述:
中秋节,公司分月饼,m个员工,买了n个月饼,m<=n,每个员工至少分1个月饼,但可以分多个,单人分到最多月饼的个数是Max1,单人分到第二多月饼个数
是Max2,Max1-Max2 <= 3,单人分到第n-1多月饼个数是Max(n-1),单人分到第n多月饼个数是Max(n),Max(n-1) – Max(n) <= 3, 问有多少种分月饼的方法?
输入描述:
每一行输入m n,表示m个员工,n个月饼,m<=n
输出描述:
输出有多少种月饼分法
示例1:
输入
2 4
输出
2
1.寻找相同子串
标题:寻找相同子串 | 时间限制:1秒 | 内存限制:65536K | 语言限制: 不限
【寻找相同子串】给你两个字符串 t 和 p ,要求从 t 中找到一个和 p 相同的连续子串,并输出该字串第一个字符的下标。
输入描述:
输入文件包括两行,分别表示字符串 t 和 p ,保证 t 的长度不小于 p ,且 t 的长度不超过1000000,p 的长度不超过10000。
输出描述:
如果能从 t 中找到一个和 p 相等的连续子串,则输出该子串第一个字符在t中的下标(下标从左到右依次为1,2,3,…);如果不能则输出”No”;如果含有多个这样 的子串,则输出第一个字符下标最小的。
示例1:
输入
AVERDXIVYERDIAN
RDXI
输出
4
2.最长子字符串的长度(一)
标题:最长子字符串的长度(一) | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限
【最长子字符串的长度(一)】给你一个字符串 s,字符串s首尾相连成一个环形 ,请你在环中找出 'o' 字符出现了偶数次最长子字符串的长度。
输入描述:
输入是一串小写字母组成的字符串
输出描述:
输出是一个整数
备注:
1 <= s.length <= 5 x 10^5
s 只包含小写英文字母
示例1:
输入
alolobo
输出
6
3.服务器广播
标题:服务器广播 | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限
【服务器广播】服务器连接方式包括直接相连,间接连接。A和B直接连接,B和C直接连接,则A和C间接连接。直接连接和间接连接都可以发送广播。
给出一个N*N数组,代表N个服务器,matrix[i][j] == 1,则代表i和j直接连接;不等于1时,代表i和j不直接连接。matrix[i][i] == 1,即自己和自己直接连接。
matrix[i][j] == matrix[j][i]。
计算初始需要给几台服务器广播,才可以使每个服务器都收到广播。
输入描述:
输入为N行,每行有N个数字,为0或1,由空格分隔,构成N*N的数组,N的范围为 1<=N<=40
输出描述:
输出一个数字,为需要广播的服务器的数量
示例1:
输入:
1 0 0
0 1 0
0 0 1
输出:
3
1.字符串序列判定
标题:字符串序列判定 | 时间限制:3秒 | 内存限制:262144K | 语言限制: [C, C++, Pascal, Java, Python, Php, C#, Object C, Python 3, Javascript,
Javascript_V8, Sqlite, R, Go, Ruby, Swift, Matlab, C++14, Bash, Pypy2, Pypy3, Rust]
【字符串序列判定】
输入两个字符串S和L,都只包含英文小写字母。S长度<=100,L长度<=500,000。判定S是否是L的有效字串。
判定规则:S中的每个字符在L中都能找到(可以不连续),且S在L中字符的前后顺序与S中顺序要保持一致。(例如,S="ace"是L="abcde"的一个子序列且有效字
符是a、c、e,而"aec"不是有效子序列,且有效字符只有a、e)
输入描述:
输入两个字符串S和L,都只包含英文小写字母。S长度<=100,L长度<=500,000。
先输入S,再输入L,每个字符串占一行。
输出描述:
S串最后一个有效字符在L中的位置。(首位从0开始计算,无有效字符返回-1)
示例1:
输入:
ace
abcde
输出:
4
2.统计射击比赛成绩
标题:统计射击比赛成绩 | 时间限制:1秒 | 内存限制:65536K | 语言限制: 不限
【统计射击比赛成绩】给定一个射击比赛成绩单,包含多个选手若干次射击的成绩分数,请对每个选手按其最高3个分数之和进行降序排名,输出降序排名后的选手
ID序列。条件如下:
1、一个选手可以有多个射击成绩的分数,且次序不固定。
2、如果一个选手成绩少于3个,则认为选手的所有成绩无效,排名忽略该选手。
3、如果选手的成绩之和相等,则成绩之和相等的选手按照其ID降序排列。
输入描述:
输入第一行,一个整数N,表示该场比赛总共进行了N次射击,产生N个成绩分数(2<=N<=100)。
输入第二行,一个长度为N整数序列,表示参与每次射击的选手ID(0<=ID<=99)。
输入第三行,一个长度为N整数序列,表示参与每次射击的选手对应的成绩(0<=成绩<=100)。
输出描述:
符合题设条件的降序排名后的选手ID序列。
示例1:
输入:
13
3,3,7,4,4,4,4,7,7,3,5,5,5
53,80,68,24,39,76,66,16,100,55,53,80,55
输出:
5,3,7,4
3.考古学家
标题:考古学家 | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限
【考古学家】有一个考古学家发现一个石碑,但是很可惜,发现时其已经断成多段,原地发现n个断口整齐的石碑碎片。为了破解石碑内容,考古学家希望有程序能
帮忙计算复原后的石碑文字组合数,你能帮忙吗?
输入描述:
第一行输入n,n表示石碑碎片的个数。
第二行依次输入石碑碎片上的文字内容s,共有n组
输出描述:
输出石碑文字的组合(按照升序排列),行末无多余空格。
备注:
如果存在石碑碎片内容完全相同,则由于碎片间的顺序变换不影响复原后的碑文内容,即相同碎片间的位置变换不影响组合。
示例1:
输入:
3
a b c
输出:
abc
acb
bac
bca
cab
cba
1.按索引范围翻转文章片段
标题:按索引范围翻转文章片段 | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限
【按索引范围翻转文章片段】输入一个英文文章片段,翻转指定区间的单词顺序,标点符号和普通字母一样处理。例如输入字符串"I am a developer. ",区间
[0,3],则输出"developer. a am I"。
String reverseWords(String s, int start, int end)
输入描述:
使用换行隔开三个参数,第一个参数为英文文章内容即英文字符串,第二个参数为翻转起始单词下标(下标从0开始),第三个参数为结束单词下标。
输出描述:
翻转后的英文文章片段所有单词之间以一个半角空格分隔进行输出
示例1:
输入:
I am a developer.
1
2
输出:
I a am developer.
2.一种字符串压缩表示的解压
标题:一种字符串压缩表示的解压 | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限 【一种字符串压缩表示的解压】有一种简易压缩算法:针对全部由小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母,其他 部分保持原样不变。例如:字符串“aaabbccccd”经过压缩成为字符串“3abb4cd”。 请您编写解压函数,根据输入的字符串,判断其是否为合法压缩过的字符 串,若输入合法则输出解压缩后的字符串,否则输出字符串“!error”来报告错误。
输入描述:
输入一行,为一个ASCII字符串,长度不会超过100字符,用例保证输出的字符串长度也不会超过100字符
输出描述:
若判断输入为合法的经过压缩后的字符串,则输出压缩前的字符串;若输入不合法,则输出字符串“!error”。
示例1:
输入:
4dff
输出:
Ddddff
3.服务失效判断
标题:服务失效判断 | 时间限制:1秒 | 内存限制:32768K | 语言限制: 不限
【服务失效判断】
某系统中有众多服务,每个服务用字符串(只包含字母和数字,长度<=10)唯一标识,服务间可能有依赖关系,如A依赖B,则当B故障时导致A也故障。
依赖具有传递性,如A依赖B,B依赖C,当C故障时导致B故障,也导致A故障。
给出所有依赖关系,以及当前已知故障服务,要求输出所有正常服务。
依赖关系:服务1-服务2 表示“服务1”依赖“服务2”
不必考虑输入异常,用例保证:依赖关系列表、故障列表非空,且依赖关系数,故障服务数都不会超过3000,服务标识格式正常。
输入描述:
半角逗号分隔的依赖关系列表(换行)
半角逗号分隔的故障服务列表
输出描述:
赖关系列表中提及的所有服务中可以正常工作的服务列表,用半角逗号分隔,按依赖关系列表中出现的次序排序。
特别的,没有正常节点输出单独一个半角逗号。
示例1:
输入:
a1-a2,a5-a6,a2-a3
a5,a2
输出:
a6,a3
1.玩牌高手
标题:玩牌高手 | 时间限制:1秒 | 内存限制:32768K | 语言限制: 不限
【玩牌高手】
给定一个长度为n的整型数组,表示一个选手在n轮内可选择的牌面分数。选手基于规则选牌,请计算所有轮结束后其可以获得的最高总分数。选择规则如下:
1、在每轮里选手可以选择获取该轮牌面,则其总分数加上该轮牌面分数,为其新的总分数。
2、选手也可不选择本轮牌面直接跳到下一轮,此时将当前总分数还原为3轮前的总分数,若当前轮次小于等于3(即在第1、2、3轮选择跳过轮次),则总分数置为
0。
3、选手的初始总分数为0,且必须依次参加每一轮。
输入描述:
第一行为一个小写逗号分割的字符串,表示n轮的牌面分数,1<= n <=20。
分数值为整数,-100 <= 分数值 <= 100。
不考虑格式问题。
输出描述:
所有轮结束后选手获得的最高总分数。
示例1:
输入:
1,-5,-6,4,3,6,-2
输出:
11
2.VLAN资源池
标题:VLAN资源池 | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限
【VLAN资源池】VLAN是一种对局域网设备进行逻辑划分的技术,为了标识不同的VLAN,引入VLAN ID(1-4094之间的整数)的概念。定义一个VLAN ID的资源池
(下称VLAN资源池),资源池中连续的VLAN用开始VLAN-结束VLAN表示,不连续的用单个整数表示,所有的VLAN用英文逗号连接起来。现在有一个VLAN资源
池,业务需要从资源池中申请一个VLAN,需要你输出从VLAN资源池中移除申请的VLAN后的资源池。
输入描述:
第一行为字符串格式的VLAN资源池,第二行为业务要申请的VLAN,VLAN的取值范围为[1,4094]之间的整数。
输出描述:
从输入VLAN资源池中移除申请的VLAN后字符串格式的VLAN资源池,输出要求满足题目描述中的格式,并且按照VLAN从小到大升序输出。
如果申请的VLAN不在原VLAN资源池内,输出原VLAN资源池升序排序后的字符串即可。
备注:
输入VLAN资源池中VLAN的数量取值范围为[2-4094]间的整数,资源池中VLAN不重复且合法([1,4094]之间的整数),输入是乱序的。
示例1:
输入:
1-5
2
输出:
1,3-5
3.区间交集
标题:区间交集 | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限
【区间交集】给定一组闭区间,其中部分区间存在交集。任意两个给定区间的交集,称为公共区间(如:[1,2],[2,3]的公共区间为[2,2],[3,5],[3,6]的公共区间为
[3,5])。公共区间之间若存在交集,则需要合并(如:[1,3],[3,5]区间存在交集[3,3],须合并为[1,5])。按升序排列输出合并后的区间列表。
输入描述:
一组区间列表,
区间数为N:
0 <= N <= 1000;
区间元素为X:
-10000 <= X <= 10000
输出描述:
升序排列的合并后区间列表
备注:
1、区间元素均为数字,不考虑字母、符号等异常输入。
2、单个区间认定为无公共区间。
示例1:
输入:
0 3
1 3
3 5
3 6
输出:
1 5
1.字符串加密
标题:字符串加密 | 时间限制:2秒 | 内存限制:65536K | 语言限制: 不限
【字符串加密】
给你一串未加密的字符串str,通过对字符串的每一个字母进行改变来实现加密,加密方式是在每一个字母str[i]偏移特定数组元素a[i]的量,数组a前三位已经赋值:
a[0]=1,a[1]=2,a[2]=4。当i>=3时,数组元素a[i]=a[i-1]+a[i-2]+a[i-3],
例如:原文 abcde 加密后 bdgkr,其中偏移量分别是1,2,4,7,13。
输入描述:
第一行为一个整数n(1<=n<=1000),表示有n组测试数据,每组数据包含一行,原文str(只含有小写字母,0<长度<=50)。
输出描述:
每组测试数据输出一行,表示字符串的密文
备注:
解答要求
时间限制:2000ms,内存限制:64MB
示例1:
输入:
1
xy
输出:
ya
2.数组组成的最小数字
标题:数组组成的最小数字 | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限 【数组组成的最小数字】 给定一个整型数组,请从该数组中选择3个元素组成最小数字并输出(如果数组长度小于3,则选择数组中所有元素来组成最小数字)。
输入描述:
一行用半角逗号分割的字符串记录的整型数组,0 < 数组长度 <= 100,0 < 整数的取值范围 <= 10000。
输出描述:
由3个元素组成的最小数字,如果数组长度小于3,则选择数组中所有元素来组成最小数字。
示例1:
输入:
21,30,62,5,31
输出:
21305
3.N进制减法
标题:N进制减法 | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限
【N进制减法】实现一个基于字符串的N机制的减法。
需要对输入的两个字符串按照给定的N进制进行减法操作,输出正负符号和表示结果的字符串。
输入描述:
输入:三个参数。
第一个参数是整数形式的进制N值,N值范围为大于等于2、小于等于35。
第二个参数为被减数字符串;
第三个参数为减数字符串。有效的字符包括0~9以及小写字母a~z,字符串有效字符个数最大为100个字符,另外还有结尾的\0。
限制:
输入的被减数和减数,除了单独的0以外,不能是以0开头的字符串。
如果输入有异常或计算过程中有异常,此时应当输出-1表示错误。
输出描述:
输出:2个。
其一为减法计算的结果,-1表示出错,0表示结果为整数,1表示结果为负数。
其二为表示结果的字符
示例1:
输入:
2 11 1
输出:
0 10