北京理工大學複試上機 2020

2022-08-21 20:51:16 字數 1651 閱讀 6367

ps: 2020的是夏令營試題

1、題目:給你乙個 m*n 大小的矩陣,每個點有 0,1,2 三種取值;0 代表障礙物,1代表白紙,2 代表墨滴。每一秒墨滴可以向其上下左右擴散,將四周的白紙染色,被染色之後的白紙可以繼續向四周擴散,以此類推。問經過幾秒,矩陣中所有的白紙都被染色。

如果可以,則輸出擴散時間;

如果不可以,則輸出false。

輸入: m n 的大小以及矩陣每個點的值

輸出: 擴散時間 或 false

例如:3 3

0 1 0

1 2 1

0 1 0

輸出: 1

3 30 1 0

1 2 1

0 1 1

輸出: 2

2 31 0 0

0 0 2

輸出: false

#include #include using namespace std;

int main()

if(arr[i][j] == 1) temp++;}}

int sec = 0;

while(!qx.empty() && temp) ;

while(size--) }}

sec++;

}if (temp) cout << "false" << endl;

else cout << sec << endl;

}return 0;

}

2、輸入三個字串,問第三個字串能否由前兩個字串多次重複組合形成。如果能,則輸出前兩個字串各自的使用次數;如果不能,則輸出 false。

輸入:三個字串

輸出:前兩個字串各自的次數 或 false

輸入: aa bb bbaaaabbaa

輸出: 3 2

輸入: ab ba abbaaabaab

輸出: false

(注意特殊用例: aa aab aabaa 故遞迴)

#include using namespace std;

int cnt1 = 0, cnt2 = 0;

int flag[2][2];

bool sub(string s1, string s)

bool dfssub(string s1, string s2, string s, int p, int rem)

if(sub(s2, s.substr(p, rem)))

return false;

}if(sub(s1, s.substr(p, rem)) && sub(s2, s.substr(p, rem))) }}

else if(sub(s1, s.substr(p, rem)))

else if(sub(s2, s.substr(p, rem)))

else return false;

}int main()

else cout << "false" << endl;

cnt1 = 0;

cnt2 = 0;

}return 0;

}

ps: 暫時是更新完了,綜合面試也是乙個大頭,都抓緊吧,盡量不手生,多看 多練 加油!!!! fighting!!! (別忘了前面未完善的!!)

北京理工大學複試上機 2015

1 圖形輸出 輸入 0 9 內的奇數,輸出用 組成的正方形中間掏出來乙個空的菱形。我是按照這種輸出的 9 8 include using namespace std intmain cout for int i n 2 i n i cout return0 2 有3個字母a,b,c 你輸入乙個數字,...

北京理工大學複試上機 2010

1 輸入一串整數,輸入命令排序!輸入 a t 在這串整數後面新增整數 t,輸入 c m n 有 n 替換 m,輸入 d t 刪除 t,輸入 s 排序。include include include include using namespace std int tonum string s,int ...

北京理工大學複試上機 2016

1 輸入學生資訊,姓名成績 成績的數目不一定 輸出每個學生的學號和平均成績,以及不及格課程數超過2的學生,按不及格課程數從大到小排好序輸出。input stu1 60 70 80 30 stu2 10 20 30 40 50 stu3 10 20 30 40 50 60 30 stu4 60 80 ...