牛客14605 画三角
生活随笔
收集整理的這篇文章主要介紹了
牛客14605 画三角
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
鏈接:https://ac.nowcoder.com/acm/problem/14605
來源:牛客網
時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 131072K,其他語言262144K
64bit IO Format: %lld
題目描述
小學時,JYM和XJ剛剛學習了三角形,XJ提議把眼睛閉起來在紙上畫三角形,鞏固知識。為了讓三角形更好地表示,JYM去拿了一張坐標紙(不要問為什么小學的他就有坐標紙),坐標紙的范圍是[-1000,1000]。于是,XJ就在坐標紙上畫了N個三角形(當然他也可能畫了一條直線出來)。因為小學的他們還沒有學習小數,所以所有的三角形頂點的坐標,都被JYM近似成了整數點。現在,JYM和XJ想知道這些三角形有沒有將坐標原點包含在里面,請你編寫程序解決這個問題。
輸入描述:
一個整數N(N<1000),表示有N個三角形。接下來每一行有兩個整數x(-1000<=x<=1000)和y(-1000<=y<=1000),表示一個點的坐標;每三行的三個點構成一個三角形。
輸出描述:
為每個三角形輸出一個YES或者NO。YES表示三角形包含了坐標原點,NO表示三角沒有包含坐標原點或者坐標原點在三角形的邊界上或者當前的三個點不能構成三角形。
N = int(input())def Area(x1,y1,x2,y2,x3,y3):return abs(x1 * y2 - x2 * y1 + x2 * y3 - x3 * y2 + x3 * y1 - x1 * y3) / 2for _ in range(N):a, b, c = [list(map(int, input().split())) for _ in range(3)]x1, y1, x2, y2, x3, y3 = a[0], a[1], b[0], b[1], c[0], c[1]# 面積area = Area(x1, y1, x2, y2, x3, y3)# 分別和原點構成的三角形面積area1 = Area(x1, y1, x2, y2, 0, 0)area2 = Area(x1, y1, x3, y3, 0, 0)area3 = Area(x2, y2, x3, y3, 0, 0)if area != (area1 + area2 + area3):# 不能構成三角形或沒有包含坐標原點print('NO')elif area1 == 0 or area2 == 0 or area3 == 0:# 原點在邊界上print('NO')else:print('YES')總結
以上是生活随笔為你收集整理的牛客14605 画三角的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客16429 组合数问题(二维前缀和
- 下一篇: 牛客 16499 解方程 (数学、Pyt