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

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

?? 1157.cpp

?? 這是哈爾濱工業(yè)大學(xué)acmOJ的源代碼
?? CPP
字號(hào):
/* 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;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久99久久综合| 欧美精品一区二区三区一线天视频| 国产一区二区不卡在线| 日本成人在线看| 视频一区二区国产| 午夜久久久久久| 视频一区二区三区中文字幕| 香蕉成人伊视频在线观看| 一区二区三区.www| 亚洲高清免费在线| 日韩精品91亚洲二区在线观看| 日韩综合一区二区| 美女国产一区二区| 国产福利视频一区二区三区| 国产最新精品精品你懂的| 国产精品一区久久久久| 岛国精品在线观看| 91热门视频在线观看| 欧美日韩在线综合| 7777精品伊人久久久大香线蕉的 | 亚洲国产精品久久艾草纯爱| 亚洲国产va精品久久久不卡综合| 亚洲成av人片在线观看| 美女在线视频一区| 国产999精品久久久久久绿帽| 91免费视频网| 6080午夜不卡| 欧美mv日韩mv| 1024成人网| 五月婷婷色综合| 韩国一区二区三区| 91色porny蝌蚪| 6080日韩午夜伦伦午夜伦| 久久久久久一二三区| 亚洲欧美视频一区| 青青草国产成人99久久| 国产精品91xxx| 色婷婷一区二区| 日韩欧美国产小视频| 中文字幕巨乱亚洲| 日韩精品欧美精品| 国产 欧美在线| 欧美蜜桃一区二区三区| 久久网站热最新地址| 看电视剧不卡顿的网站| 成人激情电影免费在线观看| 欧美在线观看视频一区二区| 精品久久久久香蕉网| 亚洲美女免费视频| 久久精品国内一区二区三区| 99久久亚洲一区二区三区青草| 欧美另类高清zo欧美| 欧美高清一级片在线观看| 亚洲一区二区三区四区在线| 国产精品中文字幕日韩精品 | 国产精品久久久久永久免费观看| 亚洲一区二区偷拍精品| 国产成人在线看| 91精品国产综合久久久久久漫画| 欧美激情一区二区在线| 蜜桃久久精品一区二区| 一本大道av一区二区在线播放| 精品少妇一区二区三区免费观看| 亚洲乱码中文字幕| 国产一区二三区| 欧美理论电影在线| 自拍偷自拍亚洲精品播放| 美女国产一区二区| 欧美三级资源在线| 国产精品久久精品日日| 国产在线一区观看| 这里只有精品99re| 亚洲精品成人精品456| 国产精品一区二区在线播放 | 亚洲欧洲av在线| 国内精品第一页| 欧美一区二区三区视频在线观看| 综合激情网...| 国v精品久久久网| 久久综合资源网| 奇米精品一区二区三区在线观看| 欧美午夜精品理论片a级按摩| 国产精品麻豆一区二区| 激情五月激情综合网| 日韩一区二区免费视频| 午夜精品久久久久久久久久 | 亚洲精品欧美在线| 成人app网站| 国产无一区二区| 黄一区二区三区| 欧美精品一区二区三区很污很色的 | 亚洲欧美日韩在线播放| 成人综合婷婷国产精品久久免费| 欧美精品一区二区久久久| 欧美a一区二区| 欧美一区二区三区在线观看| 一区二区三区四区国产精品| 91在线无精精品入口| 国产精品免费视频一区| 国产不卡视频在线播放| 国产日韩欧美综合在线| 国产麻豆9l精品三级站| 国产午夜精品在线观看| 国产v日产∨综合v精品视频| 中文欧美字幕免费| 高清免费成人av| 国产精品亲子乱子伦xxxx裸| 成人小视频在线| 国产精品久久久久久久第一福利| k8久久久一区二区三区| 国产精品不卡一区二区三区| 91免费观看视频在线| 亚洲美女视频在线| 欧美日韩中字一区| 日韩av一区二区三区四区| 欧美一级欧美一级在线播放| 免费日本视频一区| 精品久久久久av影院| 国产一区欧美日韩| 国产亚洲精品7777| 国产成人精品网址| 亚洲色图欧洲色图| 欧美体内she精视频| 日韩av中文字幕一区二区三区| 欧美成人一区二区| 成人综合婷婷国产精品久久| 亚洲日本va午夜在线电影| 欧美性受xxxx黑人xyx性爽| 男人的j进女人的j一区| 久久久精品免费观看| 不卡av在线免费观看| 一区二区三区欧美亚洲| 日韩视频一区二区三区在线播放| 国产精品白丝av| 亚洲精品国产一区二区精华液| 在线观看av一区| 狠狠狠色丁香婷婷综合久久五月| 国产精品久线在线观看| 欧美日韩一区二区三区高清 | 欧美不卡视频一区| youjizz国产精品| 一区二区三区日本| 久久这里只精品最新地址| jlzzjlzz国产精品久久| 日韩精品一级二级| 中文av字幕一区| 欧美三级视频在线播放| 国产福利精品一区二区| 亚洲电影一区二区三区| 久久久亚洲国产美女国产盗摄| 99精品一区二区三区| 青青草精品视频| 亚洲免费在线观看视频| 欧美成人r级一区二区三区| 97国产精品videossex| 奇米777欧美一区二区| 国产精品久久久久久久久久免费看| 欧美色网站导航| 国产毛片一区二区| 亚洲一区在线看| 国产精品欧美经典| 日韩精品专区在线| 欧美日韩午夜影院| 不卡一区二区中文字幕| 老司机午夜精品99久久| 一区二区三区欧美激情| 久久午夜老司机| 欧美日韩日日夜夜| 99视频在线精品| 国产一区二区三区在线观看免费| 亚洲在线一区二区三区| 中文字幕欧美激情一区| 日韩欧美国产精品一区| 在线亚洲精品福利网址导航| 国产成人精品一区二 | 欧美精品亚洲一区二区在线播放| 国产91色综合久久免费分享| 男人的天堂亚洲一区| 亚洲永久免费av| 亚洲人快播电影网| 欧美国产欧美综合| 337p粉嫩大胆色噜噜噜噜亚洲| 精品视频1区2区3区| 一本高清dvd不卡在线观看| 成人免费毛片app| 国产一区欧美日韩| 久久99国产精品尤物| 亚洲第一综合色| 亚洲午夜精品17c| 综合电影一区二区三区 | 天天色综合天天| 亚洲欧美另类小说视频| 国产精品网站一区| 久久久久99精品一区| 2021国产精品久久精品| 欧美va亚洲va香蕉在线| 日韩欧美国产系列| 欧美不卡激情三级在线观看| 欧美一区二区免费| 日韩欧美国产综合在线一区二区三区 |