2023華東師范大學計算機復試上機真題
2022華東師范大學計算機復試上機真題
2021華東師范大學計算機復試上機真題
2023華東師范大學計算機復試機試真題
2022華東師范大學計算機復試機試真題
2021華東師范大學計算機復試機試真題
在線評測:傳送門:pgcode.cn
騎車路線
題目描述
Tomislav 最近發現自己的身材完全走樣了,她走樓梯都變得很累。
一天早上她起來以后,她決定恢復姣好的身材。
她最喜歡的運動是騎自行車,因此她決定在本地的小山上做一次旅行。
她騎自行車的路線可以描述為 N 個數字的數列,每個數字表示每一段路地海拔高度。
Tomislav 最感興趣的是最長的高度一直上升的子序列,她稱這一段路為爬坡,Tomislav 只想考慮這段爬坡的高度差(即開始和最后的數字的差距),而不是什么路程長度。
一段爬坡路被定義為至少兩個連續的上升數列。
例如,我們考慮如下路線數列 12 3 5 7 10 6 1 11,這里有兩個爬坡,第一個爬坡(3 5 7 10)的高度差是 7,第二個爬坡的高度差是 10(1 11)。
幫助 Tomislav 計算高度差最大的爬坡的高度差。
輸入格式
多組測試數據輸入。
第一行是一個正整數 N (1<= N <= 1000), 描述了路線數列。
第二行有 N 個正整數,每個正整數 Pi (1<= Pi <= 1000)表示相應路段的海拔高度。
輸出格式
所有爬坡中的最大高度差,如果路線數列里面沒有爬坡,就輸出 0。
輸入樣例
5
1 2 1 4 6
6
10 8 8 6 4 3
輸出樣例
5
0
統計卡牌的值
題目描述
輸入一個數字 n,然后輸入 n 個字符串。
每個字符串包含 13 個字符,有 2,3,4,5,6,7,8,9,10,J,Q,K,A。
其中 J 算 1 分,Q 算 2 分,K 算 3 分,A 算 4 分。
輸出這些字符加在一起的最終分數
輸入樣例
3
2345
A4J
AA123Q2Q
輸出樣例
14
9
20
求 30 的倍數
題目描述
就是輸入一個數,比如 201,讓數字隨意組合,是否能組合出 30 的倍數.
如果能夠組合成 30 的倍數,就輸出最大的倍數,不能就輸出-1。
例如輸入 201 你可以隨意組合成。
201,210,012,021,102,120 等數字。
其中 120,210 都是 30 的倍數,由于要找最大的,所以答案是 210。
輸入樣例
201
輸出樣例
210
字符串查詢
題目描述
給你單詞 S 和 Q 個詢問。
每次詢問,你會得到正整數 A,B,C 和 D。
我們令單詞 X 由 S 的第 A 到 B 個字母組成,單詞 Y 由 S 的第 C 到 D 個字母組成。
你需要回答,是否能夠重新排列單詞 Y 中的字母,得到單詞 X。
輸入格式
第一行一個單詞 S(1<=|S|<=50000),僅由小寫字母組成。
第二行一個正整數 Q(Q<=Q<=50000).
接下來 Q 行,每行四個整數 A,B,C,D(1<=A<=B<=|S|,1<=C<=D<=|S|)
輸出格式
每次詢問,如果能,輸出“DA”,否則輸出“NE”。
輸入樣例
kileanimal
2
2 2 7 7
1 4 6 7
輸出樣例
DA
NE
街燈
題目描述
現在是基督降臨節,在長為 N 米的街道上有 M 個街燈。
每個燈照亮了左邊 K 米,右邊 K 米。
也就是說,在 X 米處的燈,能照亮從 X-K 到 X+K(含)。
當然,街道某處可能被多個燈照亮。
所有燈位于不同的位置。
問題在于有可能這些燈沒法照亮整條街道。
你的任務是,確定最少還要加多少燈,使得整條街道都被照亮。
輸入格式
多組測試數據輸入。
第一行一個整數 N(1<=N<=1000)。
第二行一個整數 M(1<=M<=N)。
第三行一個整數 K(0<=K<=N)。
接下來 M 行,每行一個數,保證這些數按升序排列。
他們的位置都是互異的。
輸出格式
你需要輸出所求的數字。
輸入樣例
5
2
2
1
5
輸出樣例
0
差分計數
給定 n 個整數 a1,a2,…,an 和一個整數 x。
請你計算,一共有多少個有序對 (i,j) 滿足 ai?aj=x。
注意:
- i 和 j 可以相等。
- ((1,2) 和 (2,1) 應視為兩個不同的有序對。
輸入格式
第一行包含兩個整數 n,x。
第二行包含 nn 個整數 a1,a2,…,an。
輸出格式
一個整數,表示滿足條件的有序對的數量。
數據范圍
1≤n≤106
?106≤x,ai≤106
輸入樣例
5 1
1 1 5 4 2
輸出樣例
3
整數排序
題目描述
輸入若干個 int 類型整數,將整數按照位數由大到小排序,如果位數相同,則按照整數本身從小到大排序。
例如:
輸入:10 -3 1 23 89 100 9 -123
輸出:-123 100 10 23 89 -3 1 9
輸入的整數個數最多不超過 106 個。
輸入格式
在一行中輸入若干個整數,整數之間用一個空格分隔。
輸出格式
在一行中輸出排序好的整數,整數之間用一個空格分隔。
輸入樣例
10 -3 1 23 89 100 9 -123
輸出樣例
-123 100 10 23 89 -3 1 9
乘法
題目描述
給出一個長度為n的數列和一個長度為m的數列,可以構造得到一個 n x m的矩陣C。
其中Cij.= Aix Bj
給出整數 K,你需要求出C中的第 k 大的數的值。
輸入格式
第-行輸入三個整數n,m,K(1≤n,m≤ 105,1≤K≤n x m)。
第二行輸入n個空格隔開的整數A1,A2,…, An,(-106< Ai < 106)。
第三行輸入m個空格隔開的整數B1,B2…, Bn(-106 < B?< 106)。
輸出格式
輸出一行一 個整數,表示矩陣中的第K大的數的值。
輸入樣例
3 3 3
2 3 4
4 5 6
輸出樣例
18
達到回文數
題目描述
整數 n (1≤n≤10000),從右往左讀得到它的反數 m,判斷 n 與 m 的和 s 是否是一個回文數。
回文數是從左往右讀和從右往左讀結果一樣的整數。
若 s 不是一個回文數,則繼續判斷 s 和它的反數的和是否是一個回文數。
重復這一過程,直至達到和為一個回文數為止。
例如,n 為 195,則 m 為 591,s 為 786;再計算 786+687=1473; 1473+3741=5214; 5214+4125=9339。
在達到回文數 9339 之前總共進行了 4 次加法操作。
對于 n,要求計算出達到回文數之前所進行的加法操作的最小次數和最終達到的回文數。
n 本身不是一個回文數。
保證對于 n 來說一定能在 1000 次加法操作之前達到回文數,并且在計算過程中的和一定小于 2000000000。
輸入格式
由一個整數 n 組成的一行信息。
輸出格式
一行信息,用一個空格分隔的最小加法次數及最終達到的回文數。
輸入樣例
195
輸出樣例
4 9339
位運算
題目描述
給定一個 int 型整數 x ,將 x 的二進制表示中第 i 位和第 j 位的值互換。
0 ≤ i , j ≤ 31
注意: x 的二進制表示的最右邊為第 0 位。
輸入格式
在一行中輸入三個整數,x , i , j, 整數之間用一個空格分隔。
輸出格式
在一行中輸出互換后的結果
輸入樣例
38 2 4
輸出樣例
50
Minimum_Sum
題目描述
輸入樣例
5
1 2 3 4 5
1
1 5
輸出樣例
6
表面積
題目描述
在 n 個圓柱體中挑選 k 個,按照半徑從大到小圓心對齊疊在一起放在地面上(最大的一個在最下面),計算可能的最大可視表面積。
輸入格式
第 1 行:整數 n(1<=n<=1000)和 k(1<=k<=n),一個空格分隔。
第 n+1 行:每個圓柱體的半徑 Rcm 與高度 Hcm(1<=R, H<=10^6),一個空格分隔。
輸出格式
一行中輸出 x。
表示可能的最大表面積為 x 乘以圓周率的 cm^2 。
輸入樣例
2 1
100 20
200 10
輸出樣例
44000
上古計算機
題目描述
Smith 有一臺古老的計算機,這臺計算機使用一套非常特殊的標記編程語言。
現在我們僅考慮這一語言的一個小的子集,該子集可以實現一個簡單計算器。
這臺機器一共有 4 個無差別的寄存器,分別為 AX, BX, CX, DX,在指令中他們可以互相替代,下面的表格列出了所有支持的指令。
中文名 | 格式 | 解釋 |
---|---|---|
讀操作指令 | IN AX, number | 讀數據存儲在 AX 中,AX=number |
傳送指令 | MOV AX, BX | AX=BX |
加法指令 | ADD AX, BX | AX=AX+BX |
減法指令 | SUB AX, BX | AX=AX-BX |
乘法指令 | MUL AX, BX | AX=AX * BX |
除法指令 | DIV AX, BX | AX=AX/BX(整除) |
寫操作指令 | OUT AX | 輸出 AX 的值 |
例如:以下代碼實現表達式 (2+3*5)/6 的計算并輸出計算結果。
IN AX,3
IN BX,5
MUL AX,BX
IN CX,2
ADD CX,AX
IN BX,6
DIV CX,BX
OUT CX
輸入用這種特殊標記編程語言編寫的一段代碼,請編寫一個翻譯器,對代碼進行翻譯,輸出最后運行結果。
輸入格式
輸入代碼片段。
注意:讀的數據均為 int 型整數。
所有被計算的數值(包括中間值)均保證在 int 范圍內。
輸入保證不包含任何多余的空白字符,在開始執行前,所有寄存器的值可以視為已經清零。
對于 30% 的數據指令數 <= 50;
對于 80% 的數據指令數 <= 100 000 ;
對于 100% 的數據指令數 <= 500 000 ;
輸出格式
對于每個 OUT 指令,輸出一行表示結果。
輸入樣例
IN AX,3
IN BX,5
MUL AX,BX
IN CX,2
ADD CX,AX
IN BX,6
DIV CX,BX
OUT CX
輸出樣例
2
數字排序
題目描述
給 n 個字符串,這些字符串表示數字,對數字按從小到大排序輸出(小數點前最多 5 位,小數點后最多 9 位)
輸入格式
第一行:一個正整數 n,后面 n 行,每行一個字符串。
輸出格式
按序輸出 n 個字符串。
輸入樣例
4
28.334
-14.3456
5.9
1256
輸出樣例
-14.3456
5.9
28.334
1256
安全駕駛
題目描述
在一單行直線測試車道中有 n+1 輛自動駕駛的小車同向行駛。
初始時每輛小車有各自的出發位置和恒定速度。
同時開始出發后,若后面的小車追上前面的小車,為了安全則必須降速到與前車相同的速度。
最后所有小車都需要到達目的地。
最后一輛小車不想中途降速,希望全程勻速行駛,請找出最后一輛小車在滿足條件(全程勻速且保證安全)的情況下最大可能的速度。
輸入格式
第一行包含一個正整數 d km( 1<= d <= 10^9)表示最后一輛車目前離目的地的位置。
第二行包含一個正整數 n(1<= n <= 1000)表示除最后一輛車外小車的數量。
第 i+2 行包含兩個以空格分隔的正整數,表示第 i 輛小車在最后一輛小車前方的距離 k km,以及他的速度 v km/h,保證所有小車的出發位置各不相同。
輸出格式
一行中輸出最后一輛車的最大的可能速度(單位為 km/h),保留 6 位小數。
輸入樣例
2525
1
2400 5
輸出樣例
101.000000
羅馬數字
題目描述
羅馬數字是古羅馬使用的記數系統,現今仍很常見。
羅馬數字有七個基本符號:I, V, X, L, C, D, M。
羅馬數字 | I | V | X | L | C | D | M |
---|---|---|---|---|---|---|---|
對應的阿拉伯數字 | 1 | 5 | 10 | 50 | 100 | 500 | 1000 |
需要注意的是羅馬數字與十進位數字的意義不同,它沒有表示零的數字,與進位制無關。按照下述的規則可以表示任意正整數。
“標準”形式
重復次數一個羅馬數字重復幾次,就表示這個數的幾倍。
左加右減
- 在較大的羅馬數字的右邊記上較小的羅馬數字,表示大數字加小數字。
- 在較大的羅馬數字的左邊記上較小的羅馬數字,表示大數字減小數字。
- 左減的數字有限制,僅限于 I, X, C。例如 45 表示 XLV,而不是 VL。
- 左減時不可跨越一個位值。例如,99 是 XCIX ([100-10] + [10-1]),而不是 IC ([100 - 1])。等同于阿拉伯數字每位數字分別表示。
- 左減數字必須為一位,比如 8 是 VIII,而不用 IIX。
- 羅馬數字 V, L, D 中的任何一個放在較大的羅馬數字右邊只能使用一個。
- 右加連續相同數字不超過三位,比如 14 是 XIV,而不是 XIII。
現在給出一個阿拉伯數字表示的十進制正整數,輸出其對應的羅馬數字。
輸入格式
一行十進制整數
輸出格式
一行字符串,表示對應的羅馬數字
輸入樣例
3
輸出樣例
III
中位數
題目描述
給定 n 個數 A1,A2,?,An (保證 n 為奇數)和 s,你可以任意修改其中的某些數,但每次修改會有代價。
代價定義為:若將 x 修改為 y,則此次代價為|x–y|。
求最少花費多少代價使得修改后所有數的中位數為 s。
A1,A2,?,An 的中位數定義為:將 A_i 從小到大排序后的第 n/2+ 1 項(n 為奇數)。
提示
對于 20% 數據:n≤20。
對于 40% 數據:n≤1000。
另外對于 30% 數據:滿足對于任意 i∈[1,n],Ai=0。
對于所有數據,滿足 1≤n≤10^5 且 n 為奇數,0≤s,Ai≤10^8,且 n 個數中有超過 n/2 個元素為 0。
輸入格式
第一行兩個整數 n,s。
第二行 n 個整數,表示 A1,A2,?,An
輸出格式
輸出一個整數,表示使序列的中位數變為 s 的最小代價。
輸入樣例
5 3
0 0 0 3 5
輸出樣例
3
數字猜想
題目描述
輸入一個正整數 x,如果為奇數:先乘 3 再加 1。
如果為偶數:除 2。
直到 x 變為 1,計算操作了多少次
輸入樣例
10
輸出樣例
6
最小字符串
題目描述
給定字符串 S(全為大寫字母),對任意字符,可擴展也可以不擴展,求給定字符串對應的字典序最小字符串
擴展:如 A 可以擴展為 AA,也可以不擴展,為 A
例:
輸入 AC,輸出 AAC
輸入 CA,輸出 CA
輸入 AAB,輸出 AAAAB
輸入樣例
AAB
輸出樣例
AAAAB
最長美麗子串
題目描述
給定長度為 n 的字符串 S,定義其子字符串為 S 中連續的字符所組成的字符串。
若個字符串的每一個字符都獨一無二,那么我們稱這樣的字符串是美麗的。
例如 abc 是美麗的,但是 abb 不是美麗的。
請輸出 S 的最長美麗子串的長度。
數據規定
30% :S 長度 [1,100]
60% :S 長度 [1,10000]
100% :S 長度 [1,100000]
輸入格式
一行一個字符串 S。
輸出格式
一行一個整數,表示答案。
輸入樣例
abcddbcd
輸出樣例
4
矩形個數
題目描述
在一個由 0、1 元素構成矩陣中,統計至少含有 k 個 1 的矩形的個數(矩形邊界平行于矩陣邊界)。
注意:單個元素也算是一個矩形。
輸入格式
第一行,有四個空格分隔的整數,r,c,n,k ( 1≤r,c,n≤500,1≤k≤n ) 分別表示矩陣的行數,列數,矩陣中 1 的個數,和題意中給出的 k。
接下來 n 行,每行兩個空格分隔的整數 x 和 y,表示每個 1 所在的位置 ( 1≤xi≤r,1≤yi≤c)。
輸出格式
輸出 1 行 1 個數字,表示矩形的個數。
輸入樣例
5 5 4 2
5 4
5 5
1 5
2 4
輸出樣例
41
整數分解
題目描述
給一個正整數 n,求將其分解為若干個素數之和的方案數。(1<=n<=1000)
比如 7,有三種方案:
(1)7
(2)5+2
(3)3+2+2
輸入樣例
7
輸出樣例
3
子序列
輸入樣例
3 6
1 2
輸出樣例
2
鑰匙
題目描述
經濟危機席卷全球,L 國也收到沖擊,大量人員失業。
然而,作為 L 國的風云人物,X 找到了自己的新工作。
從下周開始,X 將成為一個酒店的助理鎖匠,當然,他得先向部門領導展示他的開鎖能力。
領導給了 X 一串鑰匙,這串鑰匙串在一個大圓環上,每把鑰匙有一個編號(1…N)。
然后蒙上 X 的眼睛并把他帶到一個圓形的大房間中。
在這個房間中有 N 個上鎖的門,用 1…N 表示,這串 N 把鑰匙每一把正好打開一扇門(鑰匙編號和門編號一致就可以打開)。
X 的工作就是打開每扇門。
他因為蒙著眼睛,不過可以沿著房間的墻壁移動,不能改變方向,直到他摸著一扇門,然后他會嘗試用第一把鑰匙(最左邊)來打開門,如果鑰匙不能打開門,他會將鑰匙移到另外一側(最右邊),重復這樣直到找到正確的鑰匙,當他把所有門打開就結束任務。
不過 X 不知道的是,領導并不是測試他開鎖能力,而是測試他的耐心,所以領導故意把 X 帶到圓形房間,這樣 X 每開一扇門后,領導就會在后面悄悄把門再次鎖上,這樣以來,X 打開最后一扇門后又回到第一扇門然后一直重復下去。
不過 X 是一個勤奮和耐心的人,他一直毫無怨言的做著這件事,不說任何抱怨的話,只是在每開一扇門他會默默的統計自己已經錯誤了多少次,不過慢慢時間太久他的計算能力不足,需要你來幫助他計算錯誤的次數。
任務:給定數字 k,回答當 X 打開第 k 扇門時,一共錯誤了多少次?
輸入格式
第一行是 2 個整數 N,K
接下來 N 行,每行包含一個整數 Vi,表示鑰匙串從第一把(左側)到最后一把,第 i 把鑰匙的編號。
輸出格式
一個整數,回答第 k 次打開一扇門,已經錯誤的次數。
輸入樣例
4 6
4
2
1
3
輸出樣例
13
Weights II
題目描述
Merchants measured many commodities using weights and a two-pan balance. If you are using a limited set of weights, however, you can only measure certain quantities accurately. For example, suppose that you have only two weights: a 1-ounce weight and a 3-ounce weight. With these you can easily measure out 4 ounces, as shown in Figure1.
It is somewhat more interesting to discover that you can also measure out 2 ounces by shifting the 1-ounce weight to the other side, as shown in Figure2.
Write a program to determine whether it is possible to measure out the desired target amount with a given set of weights.
輸入格式
First line contains a single integer t(t<1000)
The ?rst line of each test case contains an integers n(1≤n≤100) – thesize of the given set of weights.
The second line of each test case contains nintegersw1,w2,?,wn(1≤wi≤104)
The third line of each test case contains an integerq(1≤q≤104)– thenumber of queries.
The fourth line of each test cases contains distinct integers – the desired target amounts.
It’s guaranteed that the sum of all does not exceed 10^4.
輸出格式
For each test case, output a binary string ,s s.t. si=1 if it is possible measure out the desired target amount Wi with the given set of weights and si=0 otherwise.
輸入樣例
3
2
1 3
6
1 2 3 4 5 6
2
1 4
6
1 2 3 4 5 6
3
3 5 9
18
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
輸出樣例
111100
101110
111111111011010010
平衡三進制 II
#### 輸入樣例
8 1
輸出樣例
102