2 0 2 0 年 第 十 一 届 蓝 桥 杯 - 国赛 - CC++大学B组 - B.扩散
生活随笔
收集整理的這篇文章主要介紹了
2 0 2 0 年 第 十 一 届 蓝 桥 杯 - 国赛 - CC++大学B组 - B.扩散
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Ideas
一開始想的是以四個點為圓心,畫一個半徑為2020的圓,所有在四個圓之內的點都是黑色的。
用的是兩點之間距離公式,也叫歐幾里得距離:∣AB∣=(x1?x2)2+(y1?y2)2|AB|=\sqrt{(x_{1}-x_{2})^2+(y_{1}-y_{2})^2}∣AB∣=(x1??x2?)2+(y1??y2?)2?
但實際上并不能這么計算,因為歐氏距離表示的兩點之間的直線距離,而題目中的擴散并不是直線傳播的,而是折線傳播的,也就是應該用曼哈頓距離公式。
Code
Python
if __name__ == '__main__':ans = 0for x in range(-2100, 4100):for y in range(-2100, 4100):if abs(x - 0) + abs(y - 0) < 2021 or \abs(x - 2020) + abs(y - 11) < 2021 or \abs(x - 11) + abs(y - 14) < 2021 or \abs(x - 2000) + abs(y - 2000) < 2021:ans += 1print(f"ans = {ans}")總結
以上是生活随笔為你收集整理的2 0 2 0 年 第 十 一 届 蓝 桥 杯 - 国赛 - CC++大学B组 - B.扩散的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode Algorithm 1
- 下一篇: LeetCode Algorithm 1