2017網易內推程式設計題(網格問題)

2021-07-28 12:55:49 字數 835 閱讀 6537

二貨小易有乙個w*h的網格盒子,網格的行編號為0~h-1,網格的列編號為0~w-1。每個格仔至多可以放一塊蛋糕,任意兩塊蛋糕的歐幾里得距離不能等於2。對於兩個格仔座標(x1,y1),(x2,y2)的歐幾里得距離為:( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算術平方根小易想知道最多可以放多少塊蛋糕在網格盒子裡。

輸入描述:

每組陣列包含網格長寬w,h,用空格分割.(1 ≤ w、h ≤ 1000)

輸出描述:

輸出乙個最多可以放的蛋糕數

輸入例子:

3 2輸出例子:

4分析:鋪兩列兩行,從行的角度來講要空兩行,從列的角度講要空兩列;當歐幾里得距離等於2的情況就是只有(x1-x2)=2或-2&& (y1-y2)=0、(x1-x2)=0 && (y1-y2)=2或-2兩種情況。那我們只要遍歷一遍所有的格仔即可,用二維陣列g來標記,0表示可以放蛋糕,1表示不可以放。從g[0][0]開始,g[0][0]可以放蛋糕,g[0][2]和g[2][0]不可以放。一般情況下每遍歷乙個格仔,都要排除距離此個格仔為2的兩個格仔。

#include 

#inlcude

using

namespace

std;

int g[1002][1002];

int w,h; //長,寬

//判斷x,y是否在範圍內

bool isok(intx, int y)

if(isok(i, j+2))

} }

cout

0;

}

2023年網易有道內推程式設計題

第一題 洗牌在生活中十分常見,現在需要寫乙個程式模擬洗牌的過程。現在需要洗2n張牌,從上到下依次是第1張,第2張,第3張一直到第2n張。首先,我們把這2n張牌分成兩堆,左手拿著第1張到第n張 上半堆 右手拿著第n 1張到第2n張 下半堆 接著就開始洗牌的過程,先放下右手的最後一張牌,再放下左手的最後...

2017 網易有道內推

第三題 乙個佇列,先pop乙個頭結點放在隊尾,再pop乙個頭結點輸出其值並丟棄。最後輸出的序列為1,2,3,n 問原始佇列元素排列是什麼 輸入 n n個數 輸出 乙個串 main.cpp youdao3 created by zjl on 16 8 27.include include using ...

2017 網易有道內推

題目在牛客網 關於資料解析 1.xml 資料結構只有乙個根節點,是可以巢狀的 2.jsonobjectwithdata options error 使用資料緩衝解析 3.writejsonobject tostream options error 使用流解析 4.xml 解析分為兩種 sax解析和d...