360公司2019校招笔试编程题合集

时长:120分钟 总分:100分

145浏览 0人已完成答题

题型介绍
题型 填空题
数量 6
1.
城市修建
问题详情

有一个城市需要修建,给你N个民居的坐标X,Y,问把这么多民居全都包进城市的话,城市所需最小面积是多少(注意,城市为平行于坐标轴的正方形)

输入描述: 第一行为N,表示民居数目(2≤N≤1000)输入样例: 2 0 0 2 2 输出描述: 城市所需最小面积输出样例 4
2.
圈地运动
问题详情

圈地运动,就是用很多木棍摆在地上组成一个面积大于0的多边形~

小明喜欢圈地运动,于是他需要去小红店里面买一些木棍,期望圈出一块地来。小红想挑战一下小明,所以给小明设置了一些障碍。障碍分别是:

1.如果小明要买第i块木棍的话,他就必须把前i-1块木棍都买下来。

2.买了的木棍都必须用在圈地运动中。

那么请问小明最少买多少根木棍,才能使得木棍围成的图形是个面积大于0多边形呢? 输入描述: 第一行一个数n,表示木棍个数。
第二行n个数,第i个数表示第i个木棍的长度ai
1<=n<=10000
1<=ai<=10000输入样例: 3 6 8 10 输出描述: 输出一个数,表示最少需要的木棍个数,如果无解输出-1输出样例 3
3.
Bittttttts
问题详情

现在有q个询问,每次询问想问你在[l,r]区间内,k进制表示中,k-1的数量最多的数是哪个数。比如当k=2时,9的二进制就是1001,那么他就有21.

输入描述: 第一行一个q,表示有q组询问。

接下来q行,每行三个整数k,l,r,分别表示进制数,查询的数字,以及查询的范围。

满足1<=q<=100000,2<=k<=16,1<=l<=r<=10^16输入样例: 1 8 1 100 输出描述: 对于每组询问,输出答案。如果有多个答案,请输出最小的。输出样例 63
4.
看花
问题详情

小明有一个花园,花园里面一共有m朵花,对于每一朵花,都是不一样的,小明用1m中的一个整数表示每一朵花。

他很喜欢去看这些花,有一天他看了n次,并将n次他看花的种类是什么按照时间顺序记录下来。

记录用a[i]表示,表示第i次他看了a[i]这朵花。

小红很好奇,她有Q个问题,[l,r]的时间内,小明一共看了多少朵不同的花儿,小明因为在忙着欣赏他的花儿,所以想请你帮他回答这些问题。

输入描述: 输入两个数n,m(1<=n<=2000,1<=m<=100)分别表示n次看花,m表示一共有m朵花儿。

接下来输入n个数a[1]~a[n],a[i]表示第i次,小明看的花的种类

输入一个数Q(1<=Q<=1000000)表示小红的问题数量。

输入Q行 每行两个数l,r(1<=l<=r<=n)表示小红想知道在第l次到第r次,小明一共看了多少不同的花儿。输入样例: 5 3 1 2 3 2 2 3 1 4 2 4 1 5 输出描述: 一共Q行

每一行输出一个数 表示小明在[l,r]的时间内看了多少种花。输出样例 3 2 3
5.
Array
问题详情

小红有两个长度为n的排列AB。每个排列由[1,n]数组成,且里面的数字都是不同的。

现在要找到一个新的序列C,要求这个新序列中任意两个位置(i,j)满足:

如果在A数组中C[i]这个数在C[j]的后面,那么在B数组中需要C[i]这个数在C[j]的前面。

请问C序列的长度最长为多少呢?

输入描述: 第一行一个整数,表示N。

第二行N个整数,表示A序列。

第三行N个整数,表示B序列。

满足:N<=50000输入样例: 5 1 2 4 3 5 5 2 3 4 1 输出描述: 输出最大的长度输出样例 4
6.
魔法排列
问题详情

众所周知,集合{1 2 3 … N}N!种不同的排列,假设第i个排列为PiPi,j是该排列的第j个数。将N个点放置在x轴上,第i个点的坐标为xi且所有点的坐标两两不同。对于每个排列(以Pi为例),可以将其视为对上述N个点的一种遍历顺序,即从第Pi,1个点出发,沿直线距离到达第Pi,2个点,再沿直线距离到达第Pi,3个点,以此类推,最后到达第Pi,N个点,将该路线的总长度定义为L(Pi),那么所有N!种路线的总长度之和是多少,即L(P1)+L(P2)+L(P3)+...+L(PN!)的结果是多少?

输入描述:

第一行包含一个整数N,1≤N≤105

第二行包含N个空格隔开的整数x1到xN,0≤x1<x2<x3<...<xN≤109

输入样例: 3 0 1 3 输出描述:

输出L(P1)+L(P2)+L(P3)+...+L(PN!)对109+7取模后的结果。

输出样例 24