題意:
題意就是給你一連串的四邊形區域,再給你一些點,讓你判斷每個四邊形內
包括邊界有多少個點。
很簡單的題目,用叉積就能判斷點和直線的關係。
**:
//
// created by cqu_cst_wuerli
//#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define clr(x) memset(x,0,sizeof(x))
#define off(x) memset(x,-1,sizeof(x))
#define mem(x,a) memset((x),(a),sizeof(x))
#define bug cout << "i am here" << endl
#define lookln(x) cout << #x << "=" << x << endl
#define si(a) scanf("%d",&a)
#define sii(a,b) scanf("%d%d",&a,&b)
#define siii(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define rep(flag,start,end) for(int flag=start;flag<=end;flag++)
#define rep(flag,start,end) for(int flag=start;flag>=end;flag--)
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define root 1,n,1
#define biginteger bign
const
int max_l=2005;// for biginteger
const
int inf_int=0x3f3f3f3f;
const
long
long inf_ll=0x7fffffff;
const
int mod=1e9+7;
const
double eps=1e-9;
const
double pi=acos(-1);
typedef
long
long ll;
using
namespace
std;
const
int n=5050;
int n,m,x1,x2,y1,y2;
struct seg
seg(int a,int b,int c,int d):x1(a),y1(b),x2(c),y2(d){}
}seg[n];
int ans[n];
int f(seg& a,int x,int y)
bool check(seg& a,seg& b,int x,int y)
return
false;
}int main(int argc, char
const *argv)
rep(i,1,m) }}
// cout << check(seg[0],seg[1],1,5) << endl;
rep(i,0,n) printf("%d: %d\n",i,ans[i]);
// rep(i,0,n+1) cout << seg[i].x1 << ' ' << seg[i].y1 << ' ' << seg[i].x2 << ' ' << seg[i].y2 << endl;
}return
0;}
POJ 2318 TOYS(計算幾何)
description 乙個矩形區域中有n條互不相交的線段,每條線段的上下端點分別在矩形的上下邊上,現給出該矩形區域中m個點的座標,保證點不在邊上,統計由這n條邊將矩形分成的n 1個區域中各有多少個點 input 多組用例,每組用例第一行六個整數n,m,xl,yl,xr,yr分別表示邊數,點數,矩形...
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...