2023年9月16日上午11:30,CSP-J/S 2023第一輪認(rèn)證結(jié)束,以下為本次比賽真題及參考答案(僅供參考,以官方發(fā)布為準(zhǔn))
1.在linux 系統(tǒng)終端中,以下哪個(gè)命令用于創(chuàng)建一個(gè)新的目錄?
A. newdir B.mkd: C.creat D.mkfold
答案: B
2. 0,1,2,3,4 中選取4個(gè)數(shù)字,能組成()個(gè)不同四位數(shù)。(注: 最小的四位數(shù)是 1000最大的四位數(shù)是9999)
A.96 B.18 C.120 D.84
答案: A
3.假設(shè) n 是圖的頂點(diǎn)的個(gè)數(shù),m 是圖的邊的個(gè)數(shù),為求解某一問(wèn)題有下面四種不同時(shí)間復(fù)雜度的算法。對(duì)于 m=O(n)的稀疏圖而言,下面的四個(gè)選項(xiàng),哪一項(xiàng)的漸進(jìn)時(shí)間復(fù)雜度最小()
答案: A
4.假設(shè)有n 根柱子,需要按照以下規(guī)則依次放置編號(hào)為 1,2,3..的圓柱:每根柱子的底部固定,頂部可以放入圓環(huán):每次從柱子頂部放入圓環(huán)時(shí),需要保證任何兩個(gè)相鄰圓環(huán)的編號(hào)之和是一個(gè)完全平方數(shù)。請(qǐng)計(jì)算當(dāng)有 4個(gè)根子時(shí),最多可以放置()個(gè)圓環(huán)。
A.7
B.9
C.11
D.5
答案:C
5.以下對(duì)數(shù)據(jù)結(jié)構(gòu)表述不恰當(dāng)?shù)囊豁?xiàng)是()
A.隊(duì)列是一種先進(jìn)先出(FIFO)的線性結(jié)構(gòu)
B.哈夫曼樹(shù)的構(gòu)造過(guò)程主要是為了實(shí)現(xiàn)圖的深度優(yōu)先搜索
C.散列表是一種通過(guò)散列函數(shù)將關(guān)鍵字映射到存儲(chǔ)位置的數(shù)據(jù)結(jié)構(gòu)
D.二叉樹(shù)是一種每個(gè)結(jié)點(diǎn)最多有兩個(gè)子結(jié)點(diǎn)的樹(shù)結(jié)構(gòu)
答案: B
6.以下連通無(wú)向圖中,()一定可以用不超過(guò)兩種顏色進(jìn)行染色
A.完全三叉樹(shù) B.平面圖 C邊雙連通圖 D歐拉圖
答案: A
7.最長(zhǎng)公共子序列長(zhǎng)度常常用來(lái)衡量?jī)蓚€(gè)序列的相似度。其定義如下,給定兩個(gè)序列X=(x1,x2x3....xm)和 Y=(y1,y2,y3,..yn),最長(zhǎng)公共子序列(LCS)問(wèn)題的目標(biāo)是找到一個(gè)最長(zhǎng)的新序列 Z=(z1,z2,z3....zk),使得序列Z 既是序列X的子序列,又是序列Y的子序列,且序列Z的長(zhǎng)度k在滿足上述條件的序列里是最大的。(注: 序列A是序列B 的子序列,當(dāng)且僅當(dāng)再保持序列 B 元素順序的情況下,從序列 B 中刪除若干個(gè)元素,可以使得剩余的元素構(gòu)成序列 A。則序列“ABCAAAABA”和“ABABCBABA”的最長(zhǎng)公共子序列長(zhǎng)度為 ()。
A.4
B.5
C.6
D.7
答案: C
8.一位玩家正在玩一個(gè)特殊的擲骰子的游戲,游戲要求連續(xù)擲兩次骰子,收益規(guī)則如下: 玩家第一次擲出x點(diǎn),得到2x元第二次擲出y點(diǎn),當(dāng)y=x 時(shí)玩家會(huì)失去之前的得到2x元。而當(dāng)y≠x 時(shí)玩家能保住第一次獲得的2x元。上述x,y∈{1,2,3,4,5,6}。例如: 玩家第一次擲出3點(diǎn)得到6元后,但第二次再次擲出3點(diǎn),會(huì)失去之前得到的6元,玩家最終受益為0元:如果玩家第一次擲出3 點(diǎn),第二次擲出4點(diǎn),則最終受益是6元。假設(shè)骰子挑出任意一點(diǎn)的概率為 1/6,玩家連續(xù)擲兩次骰子后,所有可能情形下收益的平均值是多少?
A.7元 B35/6元C.16/3元 D.19/3元
答案: B
9.假設(shè)我們有以下的C++代碼:
請(qǐng)問(wèn) res 的值是什么?(提示:在 c++中,邏輯運(yùn)算的優(yōu)先級(jí)從高到低依次為: 邏輯非(!),邏輯與(&&),邏輯或()位運(yùn)算的優(yōu)先級(jí)從高到低依次為: 位非 (~),位與(&),位異或(),位或)。同時(shí),雙目位運(yùn)算的優(yōu)先級(jí)高于雙目邏輯運(yùn)算:邏輯非和位非優(yōu)先級(jí)相同,且高于所有雙目運(yùn)算符
A、true B、false C、1 D、0
答案: A
10.假設(shè)快速排序算法的輸入是一個(gè)長(zhǎng)度為 n 的已排序數(shù)組,且該快速排序算法在分治過(guò)程總是選擇第一個(gè)元素作為基準(zhǔn)元素。以下哪個(gè)選項(xiàng)描述的是在這種情況下的快速排序行為?
A.快速排序?qū)τ诖祟愝斎氲谋憩F(xiàn)最好,因?yàn)閿?shù)組已經(jīng)排序
B.快速排序?qū)τ诖祟愝斎氲臅r(shí)間復(fù)雜度是 O(nlogn)。
C.快速排序?qū)τ诖祟愝斎氲臅r(shí)間復(fù)雜度是 O(n2)。
D.快速排序無(wú)法對(duì)此類數(shù)組進(jìn)行排序,因?yàn)閿?shù)組已經(jīng)排序
答案:C
11.以下哪個(gè)命令,能將一個(gè)名為'main.cpp”的 C++源文件,編譯并生成一個(gè)名為“main'的可執(zhí)行文件? ()
A.g++ -o main main.cpp
B.g++-o main.cpp main
C.g++ main -o main.cpp
D.g++ maincpp -o main.cpp
答案: A
12.在圖論中,樹(shù)的重心是樹(shù)上的一個(gè)結(jié)點(diǎn),以該結(jié)點(diǎn)為根時(shí),使得其所有的子樹(shù)中結(jié)點(diǎn)數(shù)最多的子樹(shù)的結(jié)點(diǎn)數(shù)量最少。一棵樹(shù)可能有多個(gè)重心。請(qǐng)問(wèn)下面哪種樹(shù)一定只有一個(gè)重心?( )
A.4個(gè)結(jié)點(diǎn)的樹(shù) B.6個(gè)結(jié)點(diǎn)的樹(shù) C.7個(gè)結(jié)點(diǎn)的樹(shù) D.8個(gè)結(jié)點(diǎn)的樹(shù)
答案: C
13.如圖是一張包含6個(gè)頂點(diǎn)的有向圖,但頂點(diǎn)間不存在拓?fù)湫?。如果要?jiǎng)h除其中一條邊,使這6個(gè)頂點(diǎn)能進(jìn)行拓?fù)渑判?,?qǐng)問(wèn)總共有多少條邊可以作為候選的被刪除邊?
A.1
B.2
C.3
D.4
答案: C
14.若定義,其中x∈{0,1,.....,15}。對(duì)于給定自然數(shù)n0,存在序列,n1,n2,....nm,其中對(duì)于1≤i≤m,都有ni=f(ni-1 ),且nm =nm-1,稱為nm 為n0關(guān)于f的不動(dòng)點(diǎn),問(wèn)在10016至1A016中,關(guān)于f的不動(dòng)點(diǎn)為9的自然數(shù)個(gè)數(shù)為()
A.10
B.11
C.12
D.13
答案:B
15、現(xiàn)在用如下代碼來(lái)計(jì)算下 2”,其時(shí)間復(fù)雜度為 ()
答案:A
解析:處理數(shù)據(jù)規(guī)模是 n 的函數(shù)可以得到: T(n)=2T(n/2),可以根據(jù)主定理,或者變量帶入 n=2k,求出時(shí)間復(fù)雜度是 O(n)。(主定理: a=2,b=2,f(n)=0)
二、 閱讀程序
假設(shè)輸入的x是不超過(guò)65535的自然數(shù),完成下面的判斷題和單選題:
16.當(dāng)輸入非零時(shí),輸出一定不為零。( )
17.(2 分)將f函數(shù)的輸入?yún)?shù)的類型改為 unsigned int,程序的輸出不變。()
18.當(dāng)輸入為“65535”時(shí),輸出為“63”。( )
19.當(dāng)輸入為“1”時(shí),輸出為“64”。( )
16.答案: 對(duì)
解析:只有 X=0 的時(shí)候,運(yùn)算才可以是 0。
17答案: 錯(cuò)
解析: unsigned int 是4個(gè)字節(jié),unsigned short 是2 個(gè)字節(jié),會(huì)溢出
18.答案: 對(duì)
解析: 65535,二進(jìn)制是 1111111111111111,位運(yùn)算可以得出答案。
19. 答案: 錯(cuò)
解析: 1,二進(jìn)制是 0000000000000001,位運(yùn)算可以得出答案。
單選題
20.當(dāng)輸入為“512”時(shí),輸出為()。
A.33280”B.“33410”C.“33106”D.“33346
答案: B
21.當(dāng)輸入為“64”時(shí),執(zhí)行完第5行后x的值為()
A.“8256” B.“4130” C.“4128” D.“4160”
答案:D
·判斷題
22.將第15行刪去,輸出不變。()
23.當(dāng)輸入為“10”時(shí),輸出的第一行大于第二行。()
24.(2分)當(dāng)輸入為“1000”時(shí),輸出的第一行與第二行相等。()
·單選題
25.solve1(n)的時(shí)間復(fù)雜度為()
A.O(nlog2n) B.O(n)C.O(nlogn)D.O(nloglogn)
26.solve(2)的時(shí)間復(fù)雜度為()
A.O(n2)B.O(n)C.O(nlogn) D.O(nloglogn)
27.輸入為“5”時(shí),輸出的第二行為()
A.“20” B.“21” C.“22” D.“23
22.答案: 錯(cuò)
23.答案:錯(cuò)
24.答案:對(duì)
25.答案: D
26.答案: B
27.答案: B
假設(shè)輸入總是合法的且|a[i]|≤10、n≤10000和1≤k≤n(n-1)/2,完成下面的判斷題和單選題。
判斷題
28.將第24行的“m”改為“m-1”輸出有可能不變,而剩下情況為少1。()
29.將第22行的“g+(h-g)/2”改為“(h+g)>>1”,輸出不變。()
30.當(dāng)輸入為“572-451-3”,輸出為“5”。()
單選題
31.設(shè)a數(shù)組中最大值減最小值加1為A,則f函數(shù)的時(shí)間復(fù)雜度為()
A.O(nlogA) B.O(n2logA) c.O(nlog(nA)) D.O(nlogn)
32.將第10行中的“>”替換為“>=”,那么原輸出與現(xiàn)輸出的大小關(guān)系為()。
A.一定小于
B.一定小于等于且不一定小于
C.一定大于等于且不一定大于D.以上三種情況都不對(duì)
33.當(dāng)輸入為“582-538-12”時(shí),輸出為()
A.“13” B.“14”C.“8”D.“15”
28.答案:對(duì)
29.答案: 對(duì)
30.答案:對(duì)
31.答案: C
32.答案:B
33.答案:B
三、完善程序
1. 在C++中,下面哪個(gè)關(guān)鍵字用于聲明一個(gè)變量,其值不能被修改?( )。
A. unsigned
B. const
C. static
D. mutable
2. 八進(jìn)制數(shù)123456708 和076543218的和為( )。
A. 222222218
B. 211111118
C. 221111118
D. 222222118
3. 閱讀下述代碼,請(qǐng)問(wèn)修改data的value成員以存儲(chǔ)3.14,正確的方式是( )。
union Data{
int num;
float value;
char symbol;
};
union Data data;
A. data.value = 3.14;
B. value.data = 3.14;
C. data->value = 3.14;
D. value->data = 3.14;
4. 假設(shè)有一個(gè)鏈表的節(jié)點(diǎn)定義如下:
struct Node {
int data;
Node* next;
};
現(xiàn)在有一個(gè)指向鏈表頭部的指針:Node* head。如果想要在鏈表中插入一個(gè)新節(jié)點(diǎn),其成員data的值為42,并使新節(jié)點(diǎn)成為鏈表的第一個(gè)節(jié)點(diǎn),下面哪個(gè)操作是正確的?( )
A. Node* newNode = new Node; newNode->data = 42; newNode->next = head; head = newNode;
B. Node* newNode = new Node; head->data = 42; newNode->next = head; head = newNode;
C. Node* newNode = new Node; newNode->data = 42; head->next = newNode;
D. Node* newNode = new Node; newNode->data = 42; newNode->next = head;
5. 根節(jié)點(diǎn)的高度為1,一根擁有2023個(gè)節(jié)點(diǎn)的三叉樹(shù)高度至少為( )。
A. 6
B. 7
C. 8
D. 9
6. 小明在某一天中依次有七個(gè)空閑時(shí)間段,他想要選出至少一個(gè)空閑時(shí)間段來(lái)練習(xí)唱歌,但他希望任意兩個(gè)練習(xí)的時(shí)間段之間都有至少兩個(gè)空閑的時(shí)間段讓他休息,則小明一共有( )種選擇時(shí)間段的方案。
A. 31
B. 18
C. 21
D. 33
7. 以下關(guān)于高精度運(yùn)算的說(shuō)法錯(cuò)誤的是( )。
A. 高精度計(jì)算主要是用來(lái)處理大整數(shù)或需要保留多位小數(shù)的運(yùn)算。
B. 大整數(shù)除以小整數(shù)的處理的步驟可以是,將被除數(shù)和除數(shù)對(duì)齊,從左到右逐位嘗試將除數(shù)乘以某個(gè)數(shù),通過(guò)減法得到新的被除數(shù),并累加商。
C. 高精度乘法的運(yùn)算時(shí)間只與參與運(yùn)算的兩個(gè)整數(shù)中長(zhǎng)度較長(zhǎng)者的位數(shù)有關(guān)。
D. 高精度加法運(yùn)算的關(guān)鍵在于逐位相加并處理進(jìn)位。
8. 后綴表達(dá)式“6 2 3 + - 3 8 2 / + * 2 ^ 3 +”對(duì)應(yīng)的中綴表達(dá)式是( )
A. ((6 - (2 + 3)) * (3 + 8 / 2)) ^ 2 + 3
B. 6 - 2 + 3 * 3 + 8 / 2 ^ 2 + 3
C. (6 - (2 + 3)) * ((3 + 8 / 2) ^ 2) + 3
D. 6 - ((2 + 3) * (3 + 8 / 2)) ^ 2 + 3
9. 數(shù)1010102和1668的和為( )。
A. 101100002
B. 2368
C. 15810
D. A016
10. 假設(shè)有一組字符{a,b,c,d,e,f},對(duì)應(yīng)的頻率分別為5%,9%,12%,13%,16%,45%。請(qǐng)問(wèn)以下哪個(gè)選項(xiàng)是字符a,b,c,d,e,f分別對(duì)應(yīng)的一組哈夫曼編碼?( )
A. 1111,1110,101,100,110,0
B. 1010,1001,1000,011,010,00
C. 000,001,010,011,10,11
D. 1010,1011,110,111,00,01
11. 給定一棵二叉樹(shù),其前序遍歷結(jié)果為:ABDECFG,中序遍歷結(jié)果為:DEBACFG。請(qǐng)問(wèn)這棵樹(shù)的正確后序遍歷結(jié)果是什么?( )
A. EDBFGCA
B. EDBGCFA
C. DEBGFCA
D. DBEGFCA
12. 考慮一個(gè)有向無(wú)環(huán)圖,該圖包括4條有向邊:(1,2),(1,3),(2,4),和(3,4)。以下哪個(gè)選項(xiàng)是這個(gè)有向無(wú)環(huán)圖的一個(gè)有效的拓?fù)渑判???)
A. 4,2,3,1
B. 1,2,3,4
C. 1,2,4,3
D. 2,1,3,4
13. 在計(jì)算機(jī)中,以下哪個(gè)選項(xiàng)描述的數(shù)據(jù)存儲(chǔ)容量最?。浚?)
A. 字節(jié)(byte)
B. 比特(bit)
C. 字(word)
D. 千字節(jié)(kilobyte)
14. 一個(gè)班級(jí)有10個(gè)男生和12個(gè)女生。如果要選出一個(gè)3人的小組,并且小組中必須至少包含1個(gè)女生,那么有多少種可能的組合?( )
A. 1420
B. 1770
C. 1540
D. 2200
15. 以下哪個(gè)不是操作系統(tǒng)?( )
A. Linux
B. Windows
C. Android
D. HTML
二、 閱讀程序(程序輸入不超過(guò)數(shù)組成字符串定義的范圍:判斷題正確填√,錯(cuò)誤填×;除特殊說(shuō)明外,判斷題1.5分,選擇題3分,共計(jì)40分)
(1)
01 #include<iostream>
02 #include<cmath>
03 using namespace std;
04
05 double f(double a,double b,double c){
06 double s=(a+b+c)/2;
07 return sqrt(s*(s-a)*(s-b)*(s-c));
08 }
09
10 int main(){
11 cout.flags(ios::fixed);
12 cout.precision(4);
13
14 int a,b,c;
15 cin>>a>>b>>c;
16 cout<<f(a,b,c)<<endl;
17 return 0;
18 }
假設(shè)輸入的所有數(shù)都為不超過(guò)1000的正整數(shù),完成下面的判斷題和單選題:
判斷題
16. (2分)當(dāng)輸入為“2 2 2”時(shí),輸出為“1.7321”(T )
17. (2分)將第7行中的'(s-b)*(s-c)'改為'(s-c)*(s-b)'不會(huì)影響程序運(yùn)行的結(jié)果( T)
18. (2分)程序總是輸出四位小數(shù)( T)
單選題
19. 當(dāng)輸入為“3 4 5”時(shí),輸出為( )
A. '6.0000' B. '12.0000' C. '24.0000' D. '30.0000'
20. 當(dāng)輸入為“5 12 13”時(shí),輸出為( )
A. '24.0000' B. '30.0000' C. '60.0000' D. '120.0000'
(2)
01 #include<iostream>
02 #include<vector>
03 #include<algorithm>
04 using namespace std;
05
06 int f(string x,string y){
07 int m=x.size();
08 int n=y.size();
09 vector<vector<int>>v(m+1,vector<int>(n+1,0));
10 for(int i=1;i<=m;i++){
11 for(int j=1;j<=n;j++){
12 if(x[i-1]==y[j-1]){
13 v[i][j]=v[i-1][j-1]+1;
14 }else{
15 v[i][j]=max(v[i-1][j],v[i][j-1]);
16 }
17 }
18 }
19 return v[m][n];
20 }
21
22 bool g(string x,string y){
23 if(x.size() != y.size()){
24 return false;
25 }
26 return f(x+x,y)==y.size();
27 }
28
29 int main(){
30 string x,y;
31 cin>>x>>y;
32 cout<<g(x,y)<<endl;
33 return 0;
34 }
判斷題
21. f函數(shù)的返回值小于等于min(n,m)。(T )
22. f函數(shù)的返回值等于兩個(gè)輸入字符串的最長(zhǎng)公共子串的長(zhǎng)度。( F)
23. 當(dāng)輸入兩個(gè)完全相同的字符串時(shí),g函數(shù)的返回值總是true( T)
單選題
24. 將第19行中的“v[m][n]”替換為“v[n][m]”,那么該程序( )
A. 行為不變 B. 只會(huì)改變輸出 C..一定非正常退出 D. 可能非正常退出
25. 當(dāng)輸入為 'csp-j p-jcs' 時(shí),輸出為( )
A. “0” B. “1” C “T” D. “F”
26 當(dāng)輸入為“csppsc spsccp”時(shí),輸出為:( )
A. “T” B. “F” c. “0” 0. “1”
(3)
01 #include <iostream>
02 #include <cmath>
03 using namespace std;
04
05 int solve1(int n){
06 return n*n;
07 }
08
09 int solve2(int n){
10 int sum=0;
11 for(int i=1;i<=sqrt(n);i++){
12 if(n%i==0){
13 if(n/i==i){
14 sum+=i*i;
15 }else{
16 sum+=i*i+(n/i)*(n/i);
17 }
18 }
19 }
20 return sum;
21 }
22
23 int main(){
24 int n;
25 cin>>n;
26 cout<<solve2(solve1(n))<<' '<<solve1((solve2(n)))<<endl;
27 return 0;
28 }
假設(shè)輸入的n是絕對(duì)值不超過(guò)1000的整數(shù),完成下面的判斷題和單選題。
判斷題
27. 如果輸入的n為正整數(shù),solve2函數(shù)的作用是計(jì)算n所有的因子的平方和( T)
28. 第13~14行的作用是避免n的平方根因子i(或n/i)進(jìn)入第16行而被計(jì)算兩次(T )
29. 如果輸入的n為質(zhì)數(shù),solve2(n)的返回值為n2+1(T )
單選題
30. (4分)如果輸入的n為質(zhì)數(shù)p的平方,那么solve2(n)的返回值為( )
A. p2+p+1 B. n2+n+1 C. n2+1 D. p4+2p2+1
31. 當(dāng)輸入為正整數(shù)時(shí),第一項(xiàng)減去第二項(xiàng)的差值一定( )
A. 大于0 B. 大于等于0且不一定大于0 C. 小于0 D. 小于等于0且不一定小于0
32. 當(dāng)輸入為“5”時(shí),輸出為( )
A. '651.625' B. '650.729' C. '651.676' D. '652.625'
三、完善程序(單選題,每小題3分,共計(jì) 3 分)
答案依次為:BACAD ABABC
(1)(尋找被移除的元素)問(wèn)題:原有長(zhǎng)度為 n+1公差為1等升數(shù)列,將數(shù)列輸?shù)匠绦虻臄?shù)組時(shí)移除了一個(gè)元素,導(dǎo)致長(zhǎng)度為 n 的開(kāi)序數(shù)組可能不再連續(xù),除非被移除的是第一個(gè)或最后之個(gè)元素。需要在數(shù)組不連續(xù)時(shí),找出被移除的元素。試補(bǔ)全程序。
01 #include <iostream
02 #include <vector>
03
04 using namespace std;
05
06 int find missing(vector<int>& nums) (
07 int left = 0, right = nums.size() - 1;
08while (left < right){
09 int mid = left + (right left) / 2;
10 if (nums[mid] - mid+ ①) (
11 ②;
12 }else{
13 ③
14 }
15 }
16 return ④;
17 }
18
19 int main() (
20 int n;
21 cin >> n;
22 vector<int> nums(n);
23 for (int i= 0; i< n; i++) cin >> nums[i];
24 int missing_number = find_missing(nums);
25 if_(missing_number == ⑤) {
26 cout << 'Sequence is consecutive' << endl;
27 }else{
28 cout << 'Missing number is ' << ,missing numbeer << endl;
29 }
30 return 0;
31 }
33. ①處應(yīng)填( )
A. 1 B.nums[0] C.right D.left
34. ②處應(yīng)填( )
A. left=mid+1 B.right=mid-1 C.right=mid D.left=mid
35. ③處應(yīng)填( )
A.left=mid+1 B.right=mid-1 C.right=mid D.left=mid
36. ④處應(yīng)填( )
A.left+nums[0] B.right+nums[0] C.mid+nums[0] D.right+1
37. ⑤處應(yīng)填( )
A.nums[0]+n B.nums[0]+n-1 C.nums[0]+n+1 D.nums[n-1]
(2) (編輯距離)給定兩個(gè)字符串,每次操作可以選擇刪除(Delete)、插入(Insert)、替換(Replace),一個(gè)字符,求將第一個(gè)字符串轉(zhuǎn)換為第二個(gè)字符串所需要的最少操作次數(shù)。
1.#include <iostream>
2.#include <string>
3.#include <vector>
4.using namespace std;
5.
6.int min(int x,int y,int z){
7. return min(min(x,y),z);
8.}
9.
10.int edit_dist_dp(string str1,string str2){
11. int m=str1.length();
12. int n=str2.length();
13. vector<vector<int>> dp(m+1,vector<int>(n+1));
14.
15. for(int i=0;i<=m;i++){
16. for(int j=0;j<=n;j++){
17. if(i==0)
18. dp[i][j]=(1);
19. else if(j==0)
20. dp[i][j]=(2);
21. else if((3))
22. dp[i][j]=(4);
23. else
24. dp[i][j]=1+min(dp[i][j-1],dp[i-1][j],(5));
25. }
26. }
27. return dp[m][n];
28.}
29.
30.int main(){
31. string str1,str2;
32. cin>>str1>>str2;
33. cout<<'Mininum number of operation:'
34. <<edit_dist_dp(str1,str2)<<endl;
35. return 0;
36.}
38. ①處應(yīng)填( )
A.j B.i C.m D.n
39. ②處應(yīng)填( )
A.j B.i C.m D.n
40. ③處應(yīng)填( )
A. str1[i-1]==str2[j-1] B. str1[i]==str2[j]
C. str1[i-1]!=str2[j-1] D. str1[i]!=str2[j]
41. ④處應(yīng)填( )
A. dp[i-1][j-1]+1 B. dp[i-1][j-1]
C. dp[i-1][j] D. dp[i][j-1]
42. ⑤處應(yīng)填( )
A. dp[i][j] + 1 B. dp[i-1][j-1]+1
C. dp[i-1][j-1] D. dp[i][j]
聯(lián)系客服