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 ...