C語言 良鄉足球場 割草機問題

2021-07-30 20:46:31 字數 998 閱讀 5588

良鄉足球場有著優質的草坪,為了進一步美化草坪,學校體育部計畫使用割草機對草坪進行修剪,進而得到多種多樣的圖案。由於割草機只能橫向或豎向割草,且每次割草都會預先設定高度,割完後會把比設定高度高的草都割成設定的高度。

假設足球場中有乙個 n * m 的草坪 (1<=n, m<=100),草坪中的草初始高度均為100。現給出乙個圖案,請通過程式設計判斷割草機是否可以割出想要的圖案。

輸入

第一行包含兩個整數 n 和 m。

接下來為 n 行輸入,每行包含 m 個不大於100的正整數。

輸出

如果可以修剪成輸入的圖案,則輸出「yes」,否則輸出「no」。

第一種方案:

每次新建乙個全為100的陣列num2,每次找到輸入陣列num的行列最大,然後讓num2陣列按行列最大鋤草,最後判斷鋤草後的陣列num2是否和要求陣列num相同

**如下:

#include 

#define n 100

int main(int argc, const char * argv)

num2[i][j] = 100;

//找到列最大

maxc[j] = maxc[j] > num[i][j]?maxc[j]:num[i][j];

//找到行最大

maxr[i] = maxr[i] > num[i][j]?maxr[i]:num[i][j];}}

for (i = 0; i < n; i++)

}//判斷鋤草後的草是否和要求的草相等

for (i = 0; i < n; i++) }}

if (flag == 1) else

}return 0;

}

第二種方案:

每次找到輸入陣列num的行列最大,直接判斷陣列裡的每乙個數是否是該行最大和該列最大的最小值。(可以證明每個數不是是該行最大就是該列最大,且為這兩個最大的較小那個值)

17 良鄉食堂

良鄉校區裡有很多很多的樓宇建築,如教學樓,辦公樓,學生宿舍等,每個樓宇均通過平面的二維座標 xi yi 表示位置。現在後勤集團想在校區內建設乙個食堂,為了方便師生就餐,所以後勤集團要求所建的食堂到各樓宇的距離之和最短。現在請大家幫忙解決此問題,在這個問題中,距離定義為曼哈頓距離,即點 i 和點 j ...

幻想鄉三連C 狂飆突進的幻想鄉

題解 不難發現,對於每一條從 s 到 t 的路徑,設其 x y 的和為 s x s y 其對答案的貢獻是 a cdot s x 1 a cdot s y 這是乙個關於 a 的一次函式。而所有的路徑就對應著許多 a in 0,1 直線,而不同 a 所對應的最短路長度恰好構成了這些直線的上凸殼,而求最短...

你只是鄉要點C比

你只是鄉要點c比 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式進...