不要二
題目解析:
本題的重點是要讀懂題意,并且需要多讀兩遍,才能讀懂,本題本質就是在二維數組中每個坐標去放蛋糕,
一個坐標位置放了蛋糕,跟他歐幾里得距離為2的位置不能放蛋糕,這個就是關鍵點。對于兩個格子坐標(x1,y1),(x2,y2)的歐幾里得距離為: ( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) 的算術平方根 。
也就是說:如果(x1,y1)放了蛋糕,則滿足 ( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) == 4的(x2,y2)不能放蛋糕。
( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) == 4看起來是一個無解的表達式。但是可以進行加法表達式分解:1+3=4 3+1=4 2+2=4 0+4=4 4+0=4,但是前三個表達式是不可能的,因為(x1-x2) * (x1-x2)表達式結果不能等于2或3。那么也就是說( (x1-x2) * (x1-x2) 和(y1-y2) * (y1-y2) )兩個表達式一個等于0,一個等于4??梢钥闯?#xff1a;假設放蛋糕的位置是(x1,y1),則不能放蛋糕的位置(x2,y2),滿足x1=x2,y1-y2=2或者x1-x2=2,y1=y2。
解題思路:
將題目像上面那樣一剖析,看似復雜的一個題就變得很簡單了,只需要一個二維數組buff,先將數組的每一個元素初始化為1,表示可以放蛋糕,如果buff[i][j]可以放蛋糕,先將計數器++,然后將buff[i][j+2]和buff[i+2][j]處標記為不能存放蛋糕,即為0。
圖解思路:
總結
- 上一篇: Linux IO - 同步,异步,阻塞,
- 下一篇: Scrapy - Request 和 R