您的位置:首页 > 理论基础 > 数据结构算法

算法与数据结构——蘑菇街笔试题

2018-01-27 22:21 429 查看

算法题 36:搬圆桌(蘑菇街)

题目:现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1)。每次移动一步,都必须在圆桌边缘固定一个点然后将圆桌绕这个点旋转。问最少需要移动几步。

输入描述:

一行五个整数r,x,y,x1,y1(1≤r≤100000,-100000≤x,y,x1,y1≤100000)

输出描述:

输出一个整数,表示答案

输入例子:

2 0 0 0 4

输出例子:

1

[b][b]*******************************************************************************************************************************[/b][/b]

算法题 63:修理桌子(蘑菇街笔试题)

Arthur最近搬到了新的别墅,别墅特别大,原先的桌子显得比较小,所以他决定换一张新的桌子。他买了一张特别大的桌子,桌子是由很多条桌腿进行支撑的,可是回到家之后他发现桌子不稳,原来是桌子腿长度不太相同。他想要自己把桌子修理好,所以他决定移除掉一些桌腿来让桌子变得平稳。

桌子腿总共有n条腿,第i条腿长度为li,Arthur移除第i桌腿要花费代价为di。假设k条腿桌子平稳的条件:超过一半桌腿能够达到桌腿长度的最大值。

例如:一条腿的桌子是平稳的,两条腿的桌子腿一样长时是平稳的。请你帮Arthur计算一下是桌子变平稳的最小总代价。

输入描述:

输入:

第一行数据是一个整数:n (1≤n≤105),n表示桌腿总数。

第二行数据是n个整数:l1, l2, …, ln (1≤li≤105),表示每条桌腿的长度。

第三行数据是n个整数:d1, d2, …, dn (1≤di≤200),表示移除每条桌腿的代价。

输出描述:

输出:

输出让桌子变平稳的最小总代价

输入例子:

样例输入

6

2 2 1 1 3 3

4 3 5 5 2 1


输出例子:

8

[b][b]*******************************************************************************************************************************[/b][/b]

算法题 84:特殊交换(蘑菇街笔试题)

题目:现有一个n个整数的序列,你要做的就是交换两个数的位置直到整个序列按照升序排列,那么将这个整数序列排好序,需要交换多少次?例如,1,2,3,5,4,我们只需要交换一次,即将5和4交换即可。

输入描述:

第一行输入一个正整数n(n≤1000),表示数字序列的元素个数,占一行;接下来一行输入从1到n的n个整数排序,中间用空格隔开

输出描述:

输出序列升序排列需要的最少交换次数

输入例子:

4

4 3 2 1

输出例子:

6

[b][b]*******************************************************************************************************************************[/b][/b]

#

[b][b]*******************************************************************************************************************************[/b][/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: