亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 1157.cpp

?? 哈爾濱工業(yè)大學(xué)ACM 競賽網(wǎng)上在線試題集錦的源代碼
?? CPP
字號:
/* This Code is Submitted by wywcgs for Problem 1157 on 2007-06-10 at 20:43:15 */
#include <cstdio>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;

const int N = 128;
const double eps = 1e-9;

class Point {	
public:
	double x, y;
	Point() {}
	Point(double tx, double ty) : x(tx), y(ty) {}
	int quadrant() const
		{ return x > -eps ? (y > -eps ? 0 : 3) : (y > -eps ? 1 : 2); }
	double distance(const Point& p) const
		{ return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)); }
	double abs() const { return sqrt(x*x+y*y); }
	bool operator ==(const Point& p) const
		{ return fabs(x-p.x) < eps && fabs(y-p.y) < eps; }
	bool operator !=(const Point& p) const { return !(*this == p); }
	Point operator -(const Point& p) const { return Point(x-p.x, y-p.y); }
	Point operator +(const Point& p) const { return Point(x+p.x, y+p.y); }
	double pmult(const Point& p) const { return x*p.x+y*p.y; }
	double xmult(const Point& p) const { return x*p.y-y*p.x; }
};

enum { INSIDE, ONEDGE, OUTSIDE };

class Polygon {
public:
	Point pt[N];
	int n;
public:
	Polygon() : n(0) {}
	void clear() { n = 0; }
	void insert(double x, double y) { pt[n++] = Point(x, y); }
	void insert(const Point& t) { pt[n++] = t; }
	double area() const;
	double perimeter() const;
	int position(const Point&) const;
//	double intersectedArea(const Polygon&) const;
};
double Polygon::area() const {
	double res = 0;
	for(int i = 0; i < n; i++)
		res += pt[i].xmult(pt[(i+1)%n])/2;
	return res;
}
double Polygon::perimeter() const {
	double res = 0;
	for(int i = 0; i < n; i++)
		res += pt[i].distance(pt[(i+1)%n]);
	return res;
}
int Polygon::position(const Point& p) const {
	for(int i = 0; i < n; i++)
		if(p == pt[i]) return ONEDGE;
	int sum = 0;
	for(int i = 0; i < n; i++) {
		Point a = pt[i]-p, b = pt[(i+1)%n]-p;
		double xmult = a.xmult(b);
		if(fabs(xmult) < eps && a.x*b.x <= eps && a.y*b.y <= eps) return ONEDGE;
		int pq = a.quadrant(), tq = b.quadrant();
		if(tq == pq) {}
		else if(tq == (pq+1)%4) sum++;
		else if(tq == (pq+3)%4) sum--;
		else if(xmult > eps) sum += 2;
		else sum -= 2;
	}
	return sum ? INSIDE : OUTSIDE;
}

class PointSet {
private:
	Point pt[N];
	int n;
public:
	PointSet() : n(0) {}
	void clear() { n = 0; }
	void insert(double x, double y) { pt[n++] = Point(x, y); }
	void insert(const Point& t) { pt[n++] = t; }
	Polygon convexHull() const;
};
bool ptcmp(const Point& p1, const Point& p2) {
	if(fabs(p1.y*p2.x-p2.y*p1.x) > eps) return p1.y*p2.x > p2.y*p1.x;
	else return p1.x*p1.x+p1.y*p1.y+eps > p2.x*p2.x+p2.y*p2.y;
}
Polygon PointSet::convexHull() const {
	Point pts[N];
	int id = 0;
	for(int i = 1; i < n; i++)
		if(pt[i].x < pt[id].x ||
			(fabs(pt[i].x-pt[id].x) < eps && pt[i].y < pt[id].y)) id = i;
	int tm = 0, m = 1;
	for(int i = 0; i < n; i++)
		if(pt[i] != pt[id]) pts[tm++] = pt[i]-pt[id];
	sort(pts, pts+tm, ptcmp);
	for(int i = 1; i < tm; i++)
		if(fabs(pts[i].xmult(pts[i-1])) > eps) pts[m++] = pts[i];
	vector<Point> stk;
	stk.push_back(pt[id]); stk.push_back(pts[0]+pt[id]);
	for(int i = 1; i < m; i++) {
		Point tp = pts[i]+pt[id];
		while(stk.size() >= 2) {
			Point v1 = stk.back()-stk[stk.size()-2], v2 = tp-stk.back();
			if(v1.xmult(v2) > -eps) stk.pop_back();
			else break;
		}
		stk.push_back(tp);
	}
	Polygon p;
	while(!stk.empty()) { p.insert(stk.back()); stk.pop_back(); }
	return p;
}

int main()
{
	Polygon kdm[N];
	int n, m;
	for(m = 0; scanf("%d", &n) != EOF && n != -1; m++) {
		PointSet pt; pt.clear();
		for(int i = 0; i < n; i++) {
			int a, b; scanf("%d %d", &a, &b);
			pt.insert(a, b);
		}
		kdm[m] = pt.convexHull();
	}
	bool d[N] = { false };
	double res = 0;
	int x, y;
	while(scanf("%d %d", &x, &y) != EOF)
		for(int i = 0; i < m; i++)
			if(!d[i] && kdm[i].position(Point(x, y)) == INSIDE) d[i] = true;
	for(int i = 0; i < m; i++)
		if(d[i]) res += fabs(kdm[i].area());
	printf("%.2lf\n", res);
	return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕欧美三区| 9191成人精品久久| 欧美国产亚洲另类动漫| 国产一区久久久| 久久久青草青青国产亚洲免观| 久久99国内精品| 国产亚洲精品bt天堂精选| 国产成人日日夜夜| 亚洲色图20p| 欧美日韩精品久久久| 久久激情五月激情| 国产午夜三级一区二区三| 9色porny自拍视频一区二区| 亚洲视频免费在线| 91精品国产综合久久久久久| 激情成人午夜视频| 亚洲视频一区二区在线| 欧美区视频在线观看| 国产一二三精品| 一区二区成人在线观看| 欧美日韩国产一区二区三区地区| 日韩和欧美一区二区| 国产婷婷色一区二区三区四区| 99久久99久久综合| 日本aⅴ免费视频一区二区三区 | 日韩视频一区二区在线观看| 国产精品亚洲一区二区三区妖精| 综合在线观看色| 91精品国产综合久久久久| 不卡视频在线观看| 日韩高清在线观看| 亚洲婷婷综合色高清在线| 91精品国产91综合久久蜜臀| 成人网在线免费视频| 石原莉奈在线亚洲三区| 中文字幕av一区二区三区免费看 | 亚洲国产欧美另类丝袜| 精品国产乱码91久久久久久网站| av不卡免费电影| 久久精品国产久精国产爱| 亚洲欧美精品午睡沙发| 久久久午夜精品| 欧美一区二区三区免费大片 | 色欧美乱欧美15图片| 久久精品久久精品| 亚洲va欧美va人人爽| 中文字幕中文乱码欧美一区二区 | 欧美日韩视频在线第一区| 国产很黄免费观看久久| 午夜日韩在线观看| 亚洲乱码一区二区三区在线观看| 精品国产91乱码一区二区三区| 在线观看三级视频欧美| 99视频一区二区| 国产不卡一区视频| 狠狠色丁香九九婷婷综合五月| 亚洲午夜电影在线| 伊人性伊人情综合网| 国产精品欧美一级免费| 久久婷婷国产综合精品青草| 欧美一区二区免费| 777久久久精品| 欧美精品一卡两卡| 欧美三级蜜桃2在线观看| 91社区在线播放| www.激情成人| 成人教育av在线| 成人精品免费视频| 成人免费观看av| 丁香婷婷深情五月亚洲| 成人深夜在线观看| 成人免费黄色大片| 99国内精品久久| 99视频在线精品| 色综合天天综合网天天看片| 99国产欧美另类久久久精品| 成人激情电影免费在线观看| 成人综合婷婷国产精品久久蜜臀| 国产福利精品导航| 福利一区二区在线观看| 丁香一区二区三区| 99久久久精品| 欧美综合在线视频| 欧美高清视频在线高清观看mv色露露十八 | 精品黑人一区二区三区久久| 91麻豆精品国产91久久久久久久久| 欧美日韩电影在线| 日韩无一区二区| 精品福利一区二区三区免费视频| 精品电影一区二区| 国产精品久线观看视频| 亚洲激情网站免费观看| 亚洲午夜在线电影| 另类调教123区| 国产米奇在线777精品观看| 成人免费av资源| 欧美色成人综合| 日韩欧美亚洲国产另类| 国产日韩高清在线| 亚洲激情一二三区| 老司机午夜精品| 成人中文字幕电影| 欧美日韩一区三区| 26uuuu精品一区二区| 国产精品国产三级国产aⅴ入口| 曰韩精品一区二区| 国产在线精品不卡| 色综合久久88色综合天天免费| 欧美日韩激情一区| 中文一区一区三区高中清不卡| 亚洲伦理在线免费看| 久久99精品久久久久| 99久久精品免费观看| 欧美一区二区三区性视频| 欧美韩日一区二区三区四区| 亚洲在线一区二区三区| 国模娜娜一区二区三区| 91蝌蚪porny九色| 精品国一区二区三区| 亚洲一区国产视频| 国产精品中文有码| 欧美色网一区二区| 国产精品午夜在线| 免费亚洲电影在线| 色综合久久九月婷婷色综合| 精品国产污污免费网站入口| 亚洲桃色在线一区| 国产精品综合一区二区三区| 欧美日韩在线一区二区| 亚洲国产高清不卡| 美女脱光内衣内裤视频久久影院| 成人福利在线看| 久久亚洲精品国产精品紫薇| 亚洲第一主播视频| av电影天堂一区二区在线观看| 日韩欧美一级片| 天堂在线一区二区| 91行情网站电视在线观看高清版| 国产亚洲欧美激情| 激情五月婷婷综合| 欧美一二三在线| 五月天婷婷综合| 色久综合一二码| 国产精品护士白丝一区av| 国产又粗又猛又爽又黄91精品| 4438成人网| 婷婷亚洲久悠悠色悠在线播放| 99久久婷婷国产精品综合| 久久久天堂av| 国产麻豆视频精品| 精品美女被调教视频大全网站| 亚洲超碰精品一区二区| 在线观看网站黄不卡| 亚洲老司机在线| 91在线码无精品| 亚洲你懂的在线视频| www.av亚洲| 亚洲欧美aⅴ...| 91麻豆国产在线观看| 国产精品国产a| 成人激情免费视频| 综合久久久久久久| 91在线国产福利| 亚洲另类在线制服丝袜| 在线精品视频一区二区三四| 亚洲精品亚洲人成人网在线播放| 97久久人人超碰| 一区二区在线观看视频| 日本丶国产丶欧美色综合| 玉米视频成人免费看| 在线欧美一区二区| 性久久久久久久| 91精品国产色综合久久不卡电影| 肉色丝袜一区二区| 日韩欧美中文字幕公布| 麻豆91在线观看| 欧美精品一区二区三区久久久| 国产精品一区二区黑丝| 亚洲国产精品v| 91小视频免费看| 香蕉影视欧美成人| 日韩午夜激情av| 成人一区二区在线观看| 亚洲三级免费观看| 欧美日韩一本到| 国产主播一区二区| 国产精品第一页第二页第三页| 日本电影欧美片| 精品伊人久久久久7777人| 国产欧美日韩视频一区二区| 99精品久久只有精品| 香港成人在线视频| www精品美女久久久tv| 成人av网在线| 偷窥国产亚洲免费视频| 久久人人爽爽爽人久久久| 99久久99久久精品免费看蜜桃 | 日韩手机在线导航| 国产成人高清在线| 亚洲电影一级片|