日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

TOYS POJ 2318 计算几何 叉乘的应用

發(fā)布時間:2023/10/11 综合教程 97 老码农
生活随笔 收集整理的這篇文章主要介紹了 TOYS POJ 2318 计算几何 叉乘的应用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Time Limit: 2000MS   Memory Limit: 65536K
Total Submissions: 15060   Accepted: 7270

Description

Calculate the number of toys that land in each bin of a partitioned toy box. 
Mom and dad have a problem - their child John never puts his toys away when he is finished playing with them. They gave John a rectangular box to put his toys in, but John is rebellious and obeys his parents by simply throwing his toys into the box. All the toys get mixed up, and it is impossible for John to find his favorite toys.

John's parents came up with the following idea. They put cardboard partitions into the box. Even if John keeps throwing his toys into the box, at least toys that get thrown into different bins stay separated. The following diagram shows a top view of an example toy box. 
 
For this problem, you are asked to determine how many toys fall into each partition as John throws them into the toy box.

Input

The input file contains one or more problems. The first line of a problem consists of six integers, n m x1 y1 x2 y2. The number of cardboard partitions is n (0 < n <= 5000) and the number of toys is m (0 < m <= 5000). The coordinates of the upper-left corner and the lower-right corner of the box are (x1,y1) and (x2,y2), respectively. The following n lines contain two integers per line, Ui Li, indicating that the ends of the i-th cardboard partition is at the coordinates (Ui,y1) and (Li,y2). You may assume that the cardboard partitions do not intersect each other and that they are specified in sorted order from left to right. The next m lines contain two integers per line, Xj Yj specifying where the j-th toy has landed in the box. The order of the toy locations is random. You may assume that no toy will land exactly on a cardboard partition or outside the boundary of the box. The input is terminated by a line consisting of a single 0.

Output

The output for each problem will be one line for each separate bin in the toy box. For each bin, print its bin number, followed by a colon and one space, followed by the number of toys thrown into that bin. Bins are numbered from 0 (the leftmost bin) to n (the rightmost bin). Separate the output of different problems by a single blank line.

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
0

Sample Output

0: 2
1: 1
2: 1
3: 1
4: 0
5: 1 0: 2
1: 2
2: 2
3: 2
4: 2

Hint

As the example illustrates, toys that fall on the boundary of the box are "in" the box.

Source

利用這個性質判斷點在矩形中哪個區(qū)域內!

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<sstream>
#include<algorithm>
#include<queue>
#include<deque>
#include<iomanip>
#include<vector>
#include<cmath>
#include<map>
#include<stack>
#include<set>
#include<fstream>
#include<memory>
#include<list>
#include<string>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
#define MAXN 5003
#define N 21
#define MOD 1000000
#define INF 1000000009
#define eps 0.00000001
/*
已知p1Xp2 >0 說明p1 在 p2的順時針方向
盒子中所有界限 按升序給出,只需從前到后按順序判斷(一個點到邊界線上面的頂點)叉乘(邊界線向量) > 0 ?
那么將該點放入對應的盒子中!
*/
struct Point
{
double x, y;
Point() {}
Point(double _x, double _y)
{
x = _x, y = _y;
}
Point operator-(const Point& b)const
{
return Point(x - b.x, y - b.y);
}
double operator^(const Point& b)const
{
return x*b.y - y*b.x;
}
}toy[MAXN];
struct Line
{
Point beg, end;
}a[MAXN];
int n, m, cnt[MAXN];
Point p1, p2;//左上角 右下角
int main()
{
bool f = false;
while (scanf("%d", &n), n)
{
memset(cnt, , sizeof(cnt));
if (!f)
f = true;
else
printf("\n");
scanf("%d%lf%lf%lf%lf", &m, &p1.x, &p1.y, &p2.x, &p2.y);
for (int i = ; i < n; i++)
{
scanf("%lf%lf", &a[i].beg.x, &a[i].end.x);
a[i].beg.y = p1.y, a[i].end.y = p2.y;
}
for (int i = ; i < m; i++)
{
scanf("%lf%lf", &toy[i].x, &toy[i].y);
int j;
for (j = ; j < n; j++)
{
if (((toy[i] - a[j].beg) ^ (a[j].end - a[j].beg)) > )
{
/*Point s = (toy[i] - a[j].beg),b = (a[j].end - a[j].beg);
cout <<":::::::"<< ((toy[i] - a[j].beg) ^ (a[j].end - a[j].beg)) << endl;*/
cnt[j]++;
break;
}
}
if (j == n)
cnt[n]++;
}
for (int i = ; i <= n; i++)
{
printf("%d: %d\n", i, cnt[i]);
}
//printf("\n");
}
return ;
}

總結

以上是生活随笔為你收集整理的TOYS POJ 2318 计算几何 叉乘的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av国产网站 | 五月婷婷激情视频 | 99热这里只| 草草影院最新地址 | 中文字幕五区 | 中文字幕久久网 | 五月婷婷爱 | 91精品国产综合久久精品图片 | 免费在线你懂的 | 真实偷拍激情啪啪对白 | 免费在线视频一区二区 | 影音av资源 | 亚洲精品国产美女 | 久久人人爽天天玩人人妻精品 | 涩涩视频在线 | 国产十区 | 国产传媒一区二区三区 | 亚洲图片在线播放 | 亚洲美女一区 | 天堂av片| 日韩免费视频网站 | 自拍偷拍欧美激情 | 相亲对象是问题学生动漫免费观看 | 婷婷网五月天 | 色网在线免费观看 | 国内偷拍一区二区 | 午夜写真片福利电影网 | 中文精品在线观看 | 高潮毛片又色又爽免费 | 日韩不卡一区二区 | 国产自精品 | 99999视频 | 国产精品国产三级国产三级人妇 | 国产激情毛片 | 久久久久亚洲AV成人无在 | 亚洲永久网站 | 全部免费毛片在线播放 | 久草福利资源在线 | 亚洲中文字幕在线一区 | 粉嫩小箩莉奶水四溅在线观看 | 五十路六十路七十路熟婆 | 色欲一区二区三区精品a片 在线观看黄网站 | 色男人影院 | 中文字幕无码乱人伦 | 国产精品激情偷乱一区二区∴ | 伊人久操 | 亚洲精品在线免费观看视频 | 国产视频一区二区视频 | 中文字幕手机在线视频 | 影音先锋人妻啪啪av资源网站 | 亚洲美女影院 | 国产日韩一级片 | h网站在线播放 | 青青操网| 2019日韩中文字幕mv | 免费一区二区视频 | 日韩人妻无码一区二区三区 | 中国a毛片 | 午夜影院| 特黄特色大片免费视频大全 | 亚洲高潮av | 中文字幕最新在线 | 亚洲美女视频网 | 久久精品国产99久久 | 在线视频一区二区三区四区 | 国产理论片 | 亚洲女人18毛片水真多 | 特黄特色大片免费 | 91午夜视频在线观看 | 亚洲 激情 | 91福利视频免费观看 | 色乱码一区二区三区在线男奴 | 国产精品久久九九 | 一区视频网站 | 久久嗨 | 超碰在线看 | 国产xxxxx视频 | 久草福利资源在线 | 超碰综合 | 91在线视频免费 | 理论在线视频 | 国产精品久久久久久久久久久久久久久久久 | 亚洲一区二区av在线 | 亚洲第一成年人网站 | 久久99操| 国产人妖视频 | 国产欧美精品aaaaaa片 | 蜜臀aⅴ国产精品久久久国产老师 | 欧美特级一级片 | 18深夜在线观看免费视频 | 国产成人精品亚洲线观看 | 丁香婷婷综合网 | 午夜视频日韩 | 日韩av在线免费播放 | 黄色片免费在线播放 | 91干视频 | 三级亚洲欧美 | 国产第113页| 少妇在线观看 |