description
乙個矩形區域中有n條互不相交的線段,每條線段的上下端點分別在矩形的上下邊上,現給出該矩形區域中m個點的座標,保證點不在邊上,統計由這n條邊將矩形分成的n+1個區域中各有多少個點
input
多組用例,每組用例第一行六個整數n,m,xl,yl,xr,yr分別表示邊數,點數,矩形區域左上角的橫縱座標,矩形區域右下角的橫縱座標,之後n行每行兩個整數u和l表示該條邊上下端點的橫座標,最後m行每行兩個數x和y表示該點座標
output
對於每組用例,輸出每個區域的點數,每兩組輸出之間用空行隔開
sample input
5 6 0 10 60 0
3 1
4 3
6 8
10 10
15 30
1 5
2 1
2 8
5 5
40 10
7 9
4 10 0 10 100 0
20 20
40 40
60 60
80 80
5 10
15 10
25 10
35 10
45 10
55 10
65 10
75 10
85 10
95 10
0sample output
0: 2
1: 1
2: 1
3: 1
4: 0
5: 1
0: 2
1: 2
2: 2
3: 2
4: 2
solution
對每個點求出其左側最右邊一條邊即可推出其所在區域
code
#include
#include
#include
#include
#include
#include
using
namespace
std;
struct node
p[5555];
bool is_in(int x,int y,int a)//判斷某點是否在某邊的右側
int main()
//for(int i=0;i<=n+1;i++)
// printf("%d %d %d %d\n",p[i].x1,p[i].y1,p[i].x2,p[i].y2);
int cnt[5555]=;
while(m--)
for(int i=0;i<=n;i++)
printf("%d: %d\n",i,cnt[i]);
res++;
}return
0;}
POJ 2318 TOYS 計算幾何
點我看題 題意 用n個分隔板把乙個矩形分成n 1個部分,然後有m個點分布在這個矩形上,問每個區域上能有多少個點。分析 利用叉乘和二分解題。首先預處理出這些分隔板,然後對每個點進行二分,二分條件是看當前要判斷的點在隔板的左還是右,而利用叉乘正好可以判斷點在左還是右邊。include include i...
poj2318 TOYS(計算幾何)
那些年不想寫的計算幾何,總有一天要還。直接列舉點,列舉四邊形即可,只要用叉乘判斷點是否在兩條線段中間即可。o n m o nm o nm include include include include include using namespace std define ll long long d...
POJ 2318 TOYS(計算幾何入門)
題意 題意就是給你一連串的四邊形區域,再給你一些點,讓你判斷每個四邊形內 包括邊界有多少個點。很簡單的題目,用叉積就能判斷點和直線的關係。created by cqu cst wuerli include include include include include include include...