爱奇艺2020校招编程题汇总

时长:120分钟 总分:100分

63浏览 0人已完成答题

题型介绍
题型 填空题
数量 6
1.
切割块
问题详情

有一个x*y*z的立方体,要在这个立方体上砍k刀,每一刀可以看作是用一个平行于立方体某一面的平面切割立方体,且必须在坐标为整数的位置切割,如在x=0.5处用平面切割是非法的。

问在切割k刀之后,最多可以把立方体切割成多少块。

输入描述: 输入仅包含一行,一行包含4个正整数x,y,z,k分别表示x*y*z的立方体和切割k刀。(1<=x,y,z<=10^6,0<=k<=10^9)输入样例: 2 2 2 3 输出描述: 输出仅包含一个正整数,即至多切割成多少块。输出样例 8
2.
谁当裁判
问题详情

假设有N个人要玩游戏,每轮游戏必须选出一个人当裁判,剩下的N-1个人作为玩家。现在第i个人要求作为玩家进行至少Ai轮游戏,那么至少需要进行多少轮游戏才能满足所有人的要求?

输入描述:

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

第二行包含N个空格隔开的整数A1到AN,0≤Ai≤109

输入样例: 3 2 2 3 输出描述:

输出至少需要进行的游戏轮数。

输出样例 4
3.
排列计数
问题详情

给定一个大小为N-1且只包含0和1的序列A1到AN-1,如果一个1到N的排列P1到PN满足对于1≤i<N,当Ai=0时Pi<Pi+1,当Ai=1时Pi>Pi+1,则称该排列符合要求,那么有多少个符合要求的排列?

输入描述:

第一行包含一个整数N,1<N≤1000。

第二行包含N-1个空格隔开的整数A1到AN-1,0≤Ai≤1。

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

输出符合要求的排列个数对109+7取模后的结果。

输出样例 3
4.
最强大脑
问题详情

人脑对于长度特别长的字符串的处理速度是有限的,但是最强大脑挑战的就是人脑的极限,现在有这样一项挑战,给出一个很长的字符串S,和一个较短的字符串T,请你求出对于每一个前缀[1,r]内有多少个T字符串。 输入描述:

第一行一个字符串S。

第二行一个字符串T。两个字符串保证均只含小写字母。(1≤|S|≤500000, 1≤|T|≤100)

输入样例: ababac ab 输出描述: 输出仅包含|S|个正整数,分别表示[1,r]内有多少个T字符串。(1<=r<=|S|)输出样例 0 1 1 2 2 2
5.
红蓝球
问题详情

有一个非常经典的概率问题,是一个袋子里面有若干个红球和若干个蓝球,两个人轮流取出一个球,谁先取到红球谁就赢了,当人的先后顺序和球的数量确定时,双方的胜率都可以由计算得到,这个问题显然是很简单的。

现在有一个进阶版的问题,同样是一个袋子里面有n个红球和m个蓝球,共有ABC三人参与游戏,三人按照ABC的顺序轮流操作,在每一回合中,ABC都会随机从袋子里面拿走一个球,然而真正分出胜负的只有AB两个人,没错,C就是来捣乱的,他除了可以使得袋子里面减少一个球,没有其他任何意义,而AB谁 先拿到红球就可以获得胜利,但是由于C的存在,两人可能都拿不到红球,此时B获得胜利。

输入描述:

输入仅包含两个整数n和m,表示红球和蓝球的数量,中间用空格隔开。(0<=n,m<=1000)

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

请你输出A获胜的概率,结果保留5位小数。

输出样例 0.50000
6.
或和异或
问题详情

首先给出一个长度为2n的序列,我们定义一个值v,这个值是由如下计算方法得到的,首先将A序列的第2*i-1位和第2*i位(i=1,2,..,2n-1)进行OR操作得到新数列A',然后再对A'序列操作,将A' 序列的第2*i位和第2*i-1位(i=1,2,...,2n-2)进行XOR操作得到A'',对A''按照第一次操作方式进行OR操作,因为序列长度为2n,所以显然进行n次操作之后就只剩下一个数字了此时这个数字就是v

例如A={1234},第一次操作之后为{1|2=33|4=7},第二次操作后,{3^7=4},所以v=4

但是显然事情并没有那么简单,给出A序列后,还有m个操作,每个操作表示为“a b”,表示将A[a]改为b,之后再对A序列求v值。

输入描述:

输入第一行包含两个正整数n,m,分别表示A序列的长度为2^n,操作数量为m。(1<=n<=17,1<=m<=10^5)

输入第二行包含n个正整数,中间用空格隔开,表示A序列。(0<=ai<=2^30)

接下来有m行,每行包含两个正整数a,b,表示一次操作,即把A[a]变成b。(1<=a<=2^n, 0<=b<=2^30)

输入样例: 2 4 1 2 3 4 1 4 3 4 1 3 1 3 输出描述:

输出包含m行,第i行表示进行了第i次操作之后,A序列的v值。

输出样例 1 2 7 7