1. 程式人生 > >codeforces 1058B - Vasya and Cornfield

codeforces 1058B - Vasya and Cornfield

row class mat 條件 blank clas 多邊形 -s false

<題目鏈接>

題目大意:

給出一個矩形,該矩形的四個頂點分別為:(0,d),(d,0),(n,n?d) and (n?d,n)。然後給出一些點的坐標,分別判斷這些點是否在該矩形內。

解題分析:
開始還以為要用計算幾何判斷點是否在多邊形內的板子,結果發現,給出的矩形四條邊方程完全可以很容易的推出來,然後再將該點帶入這四個方程,判斷是否符合條件即可。

#include <cstdio>

int main(){
    int n,d,m;
    scanf("%d%d%d",&n,&d,&m);
    while(m--){
        int
x,y; scanf("%d%d",&x,&y); if((x+y)>=d&&y<=(x+d)&&y>=(x-d)&&x+y<=(2*n-d))printf("YES\n"); //算出的四條邊方程 else{ printf("NO\n"); } } return 0; }

2018-09-28

codeforces 1058B - Vasya and Cornfield