拼多多2021筆試真題集

小編:管理員 704閱讀 2021.06.08

一、[編程題]多多的數字組合:

多多君最近在研究某種數字組合:

定義為:每個數字的十進制表示中(0~9),每個數位各不相同且各個數位之和等于N。
滿足條件的數字可能很多,找到其中的最小值即可。
多多君還有很多研究課題,于是多多君找到了你--未來的計算機科學家尋求幫助。

輸入描述:
共一行,一個正整數N,如題意所示,表示組合中數字不同數位之和。
(1 <= N <= 1,000)

輸出描述:
共一行,一個整數,表示該組合中的最小值。
如果組合中沒有任何符合條件的數字,那么輸出-1即可。

輸入例子1:
5

輸出例子1:
5

例子說明1:
	
	

符合條件的數字有:5,14,23,32,41
	


	

其中最小值為5
	

輸入例子2:
12

輸出例子2:
39

例子說明2:


輸入例子3:
50

輸出例子3:
-1

例子說明3:

沒有符合條件的數字 (T▽T)


二、[編程題]多多的字符變換:


多多君最近在研究字符串之間的變換,可以對字符串進行若干次變換操作:

  1. 交換任意兩個相鄰的字符,代價為0。
  2. 將任意一個字符a修改成字符b,代價為 |a - b|(絕對值)。
現在有兩個長度相同的字符串X和Y,多多君想知道,如果要將X和Y變成兩個一樣的字符串,需要的最少的代價之和是多少。


輸入描述:
共三行,第一行,一個整數N,表示字符串的長度。
(1 <= N <= 2,000)
接下來兩行,每行分別是一個字符串,表示字符串X和Y。
(字符串中僅包含小寫字母)

輸出描述:
共一行,一個整數,表示將X和Y變換成一樣的字符串需要的最小的總代價。

輸入例子1:
4
abca
abcd

輸出例子1:
3

例子說明1:
其中一種代價最小的變換方案:
都修改為abcd,那么將第一個字符串X最后一個字符a修改為d,代價為|a - d| = 3。

輸入例子2:
4
baaa
aabb

輸出例子2:
1

例子說明2:
其中一種代價最小的變換方案:
首先將第一個字符串通過交換相鄰的字符:baaa -> abaa -> aaba,代價為0。
然后將第二個字符串修改最后一個字符b:|b - a| = 1。
兩個字符都修改為aaba,所以最小的總代價為1。

輸入例子3:
3
abc
xyz

輸出例子3:
69

 
三、[編程題]多多的求和計算:
多多路上從左到右有N棵樹(編號1~N),其中第i個顆樹有和諧值Ai。
多多雞認為,如果一段連續的樹,它們的和諧值之和可以被M整除,那么這個區間整體看起來就是和諧的。
現在多多雞想請你幫忙計算一下,滿足和諧條件的區間的數量。

輸入描述:
第一行,有2個整數N和M,表示樹的數量以及計算和諧值的參數。
( 1 <= N <= 100,000, 1 <= M <= 100  )
第二行,有N個整數Ai, 分別表示第i個顆樹的和諧值。
( 0 <= Ai <= 1,000,000,000 )

輸出描述:
共1行,每行1個整數,表示滿足整體是和諧的區間的數量。

輸入例子1:
5 2
1 2 3 4 5

輸出例子1:
6

例子說明1:
長度為1: [2], [4]
長度為2: 無
長度為3: [1,2,3], [3,4,5]
長度為4: [1,2,3,4], [2,3,4,5]
長度為5: 無
共6個區間的和諧值之和可以被2整除。



 
四、[編程題]多多的骰子組合: 
多多君拼團購買了N個骰子,為了方便后面進行活動,多多君需要將這些骰子進行分類。



兩個骰子為同類的定義是:
1
將其中一個骰子通過若干次上下、左右或前后翻轉后,其與另一個骰子對應的6面數字均相等。

現在多多君想知道不同種類的骰子的數量分別有多少。

輸入描述:
			

第一行1個整數N,表示骰子的數量。
	

(1 <= N <= 1,000)
		

接下來N行,每行6個數字(1~6,且各不相同)
		

其中第i行表示第i個骰子當前上、下、左、右、前、后這6面的數字。
		


輸出描述:
共2行:
第一行1個整數M,表示不同種類的骰子的個數
第二行M個整數,由大到小排序,表示每個種類的骰子的數量

輸入例子1:
2
1 2 3 4 5 6
1 2 6 5 3 4

輸出例子1:
1
2

例子說明1:
第二個骰子相當于是第一個骰子從左向右旋轉了一面得到,屬于同類。

輸入例子2:
3
1 2 3 4 5 6
1 2 6 5 3 4
1 2 3 4 6 5

輸出例子2:
2
2 1

例子說明2:
第三個骰子無法通過任何旋轉變換成第一個或第二個骰子。

輸入例子3:
10
2 5 1 3 4 6
5 4 3 2 1 6
1 4 6 2 3 5
1 5 6 3 4 2
6 4 2 1 5 3
3 6 4 5 2 1
1 6 3 4 2 5
5 1 4 2 6 3
6 2 3 1 5 4
5 3 6 1 4 2

輸出例子3:
9
2 1 1 1 1 1 1 1 1

例子說明3:
只有第4個骰子(1 5 6 3 4 2)與第8個骰子(5 1 4 2 6 3)屬于同一類。
		

			
		
一種可能的變換方式:
		

1) 首先從右向左翻轉1次
 (1 5 6 3 4 2) -> (1 5 4 2 3 6)
2) 然后從上向下翻轉2次
 (1 5 4 2 3 6) -> (6 3 4 2 1 5) -> (5 1 4 2 6 3)


關聯標簽: