Skip to content

howborn/2017-ziroom-king

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 

Repository files navigation

本次王者编程大赛分为 3 个组别,以下是研发战场的题目,主要考查点为算法。

题目

题1

“司庆大放送,一元即租房”,司庆当日,签约入住的客户,住满 30 天,返还(首月租金 -1 元)额度的租金卡。租金卡的面额遵循了类似人民币的固定面额(1000 元、500 元、100 元、50 元、20 元、10 元、5 元、1 元),请实现一个算法,给客户返还的租金卡张数是最少的。

示例:

输入(租金卡金额):54

输出:5

输入(租金卡金额):9879

输出:20

题2(排列组合)

2016 年自如将品质管理中心升级为安全与品质管理中心,并开通了自如举报邮箱。请看下边的算式

1 2 3 4 5 6 7 8 9 = 110(举报邮箱前缀数字);

为了使等式成立,需要在数字间填入加号或者减号(可以不填,但不能填入其它符号)。之间没有填入符号的数字组合成一个数,例如:12 + 34 + 56 + 7 - 8 + 9 就是一种合格的填法。

请大家帮忙计算出多少个可能组合吧,至少 3 个以上算有效。

示例:

输入:[1 2 3 4 5 6 7 8 9]

输出:12 + 34 + 56 + 7 - 8 + 9

题3(排序)

给定一个所有元素为非负的数组,将数组中的所有数字连接起来,求最大的那个数。

示例:

输入:4,94,9,14,1

输出:9944141

输入:121,89,98,15,4,3451

输出:98894345115121

题4

自如寓打算门口用砖头围立一个蓄水池子,从上面看凹凸不平,凹的地方会有积水。那如果用数字代表每个砖头的高度,就形成一个二维数据(如示例),请问这个池子能存储多少单位的水?

例如二维数组为:

9 9 9 9
3 0 0 9
7 8 9 6

时,答案是中间的 0,0 位置可以存储 3(因为其外面最低是 3 )个单位的水,因此答案为 3 + 3 = 6。

示例:

输入:[1 1 1 1,1 0 0 1,1 1 1 1]

输出:2

输入:[12 11 12 0 13,12 9 8 12 12,13 10 0 3 15,19 4 4 7 15,19 4 3 0 15,12 13 10 15 13]

输出:58

题5(01背包)

服务目前每月会对搬家师傅进行评级,根据师傅的评级排名结果,我们将优先保证最优师傅的全天订单。

假设师傅每天工作 8 个小时,给定一天 n 个订单,每个订单其占用时间长为 Ti,挣取价值为 Vi,现请您为师傅安排订单,并保证师傅挣取价值最大。

输入格式

输入 n 组数据,每组以逗号分隔,并且每一个订单的编号、时长、挣取价值以空格分隔

输出格式

输出争取价值和订单编号,订单编号按照价值由大到小排序,争取价值相同,则按照每小时平均争取价值由大到小排序

示例:

输入:[MV10001 2 100,MV10002 3 120,MV10003 1 200,MV10004 3 200,MV10005 4 70,MV10006 3 120,MV10007 2 10,MV10008 2 30,MV10009 6 500,MV10010 3 400]

输出:800 MV10010 MV10003 MV10004

输入:[M10001 2 100,M10002 3 210,M10003 3 300,M10004 2 150,M10005 1 70,M10006 2 220,M10007 1 10,M10008 3 30,M10009 3 200,M10010 2 400]

输出:990 M10010 M10003 M10006 M10005

题6(约瑟夫环)

每年夏季自如都会组织夏季夏令营活动,给来京参加夏令营的小崩友准备好多礼物,今年也是如此。

组委会准备了一些小游戏来获得这些礼物,其中有一个游戏是这样的:组委会让小崩友围成一个圈。然后随机制定一个数 e,让编号为 0 的小朋友开始报数。

每次喊道 e-1 的小朋友直接出列,淘达出局。从本次喊道 e-1 的下一个小朋友开始,继续从 0 报数...e-1 淘汰出局...一直这样进行...最后进行到最后一个小朋友,这位可以拿到"熊帅"亲笔签名的"木木"毛绒玩具。

(注:小朋友的编号是从 0 到 n-1 )

示例:

输入:n=1314 e=520

输出:796

输入:n=88888 e=1018

输出:69148

题7(最短路径)

自如年底就会拥有 50W 间房子,大家知道每间房房子都是需要配置完才能出租给自如客的,整个房租的配置过程是很复杂的,每天都需要大量的物流师傅将家电、家具等物品从仓库送到需要配置的每个房间。为了能在更多的时间配置更多的房子,我要不断的优化物流从仓库 A 到房间 G 的路径或者仓库 B 到房间 E 的距离,请写出一种算法给你任意图中两点,计算出两点之间的最短距离。

注: A B C D E F G H 都可能是仓库或者房间,点与点之间是距离。

示例:

输入:AE

输出:22A A-B-E

输入:CG

输出:33 C-D-H-G 或:33 C-B-E-F-G

解题思路

上述 7 道题中,我认为第 4 题蓄水池问题,出的比较有分量,其他题目很容易看清楚考察点,这里我给出了自己的 实现方式,已在 在线验证平台 验证通过。本次大赛考察的是解题思路,也就是分析和解决问题的能力,然后就能很容易编码实现了。

About

自如-2017王者编程大赛题目

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages