演算法競賽入門經典第四章習題

2021-07-23 03:35:14 字數 1447 閱讀 6572

習題4-1:

題目大意就是:

乙個象棋殘局,紅方有n(2<=n<=7) 個棋子,黑方只有乙個將,紅方除了帥,還可能有車,馬,炮,並且要考慮「蹩馬腿」,輸入所有棋子的位置,保證局面合法並且紅方已經將軍,判斷紅方是否已經將黑方將死,

解題思路:

用乙個棋盤儲存紅方可以打到的地方,看黑方將是否有其餘的地方去,在豎直方向只要判斷將能去的大方就可以,也就可以將帥和車一起判斷,

題解連線:習題4-1,uva 1589

習題4-2:

題目大意:

有n行n列(2<=n<=9) 的小圓點,還有m條線段連線其中的一些黑點,統計這些線段連線成多少正方形的個數(每種邊長分別統計);

解題思路:

模擬,用兩個陣列模擬行和列,統計時列舉定點掃瞄

題解連線:

習題4-2,uva 201

習題4-4:

題目大意:

給兩個正6麵體,問二者是否等價,每個面都用6個字母表示;

解題思路:

固定乙個面旋轉,有四種可能,一共固定6個面;

題解連線:

習題4-4,uva 253

習題4-5:

題目大意:

給你幾個ip求給出ip範圍內的最小的ip,(ip範圍,可以用乙個網路位址和乙個子網掩碼描述乙個ip,其中子網掩碼包含32個二進位制,前32-n位為1,後n位為0,網路位址的前32-n位任意,後n位為0,所有前32-n位和網路位址相同的ip都屬於此網路)

題目連線here

解題思路:

ip的四個部分分別處理,每一部分找出最大值的最小值,然後判斷是其二進位制最後幾位不同,得出子網掩碼;

用任意乙個ip與子網掩碼進行按位與運算得出最小ip;

題解連線:

習題4-5,uva 1590

習題4-8:

題目大意:

課堂上有n(n<=10)個學生,每個學生都有乙個「睡眠-清醒「」週期,其中第i

個學生清醒ai分鐘後睡bi分鐘,然後重複(1<=ai,bi<=5),初始時第i個學生處於他的週期的第ci分鐘,每個學生臨睡前檢視全班睡覺人數是否嚴格大於清醒人數,只有這個條件滿足時才睡覺,否則堅持聽課ai分鐘後再次檢查這個條件,問多長時間後全班都清醒,

解題思路:

模擬整個過程直到全部清醒或者時間足夠長,用ci表示在週期中的狀態時間

題解連線:

習題4-8,uva 12108

習題4-10:

題目大意:

有n*m(1<=n,m<=30)的網格,每個格仔是邊長為10公尺的正方形,網格四周是無限大的牆壁。輸入每個格仔的海拔高度,以及網格的內雨水的總體積,輸出水位的海拔高度以及有多少百分比的區域內有水,

解題思路:

題目挺簡單的但是一開始沒弄還wa了幾發,還是太弱了,把輸入的格仔排序,從小到大算加上水的高度以後比下一塊高不高

題解連線:習題4-10,uva 815

《演算法競賽入門經典》第四章小結

題目 編寫乙個函式solve,給定浮點數a,b,c,d,e,f,求解方程組ax by c,dx ey f.任務1 使用assert巨集,讓解不唯一時異常退出。任務2 解不唯一時仍正常返回,但呼叫者有辦法知道解的數量 無解,唯一解,無窮多組解 思考 函式的引數都有哪些,各是什麼型別?任務1 inclu...

演算法競賽入門經典 第四章答案

4.4.1 小問題集錦 任務1 使用assert巨集,讓解不唯一時退出。include includevoid solve double a,double b,double c,double d,double e,double f,double x,double y int main 任務2 解不唯...

演算法競賽入門經典第四章 部分習題解答

習題4 2 此題不難,我採取最直接的辦法,暴力遍歷進行判斷,如下 def do squares h,v,n h,v是乙個矩陣 deftest i,j,l i i j j while jif h i j 0 return false j 1 while iif v i j 0 return false...