题目连接:
POJ 2318
题目大意:给一个长方体盒子,中间竖直插上若干隔板,将盒子分成了若干区域,现在往盒子里丢玩具,问最后各个区域内含有多少玩具。
这道题有两个思路:
一个是,将矩形区域分割成多个梯形区域,然后对每一个点进行判断,在哪一个区域中。(二分快一些)
一个是,将每个点与中间的隔板进行比较,如果在该隔板左边 则隔板左边的区域+1,在右边 则隔板右边的区域+1,输出的时候第一个区域不动,后面每个区域要减去前一个区域的点数再输出
题目大意:给一个长方体盒子,中间竖直插上若干隔板,将盒子分成了若干区域,现在往盒子里丢玩具,问最后各个区域内含有多少玩具。
这道题有两个思路:
一个是,将矩形区域分割成多个梯形区域,然后对每一个点进行判断,在哪一个区域中。(二分快一些)
一个是,将每个点与中间的隔板进行比较,如果在该隔板左边 则隔板左边的区域+1,在右边 则隔板右边的区域+1,输出的时候第一个区域不动,后面每个区域要减去前一个区域的点数再输出
// POJ 2318 TOYS -- 判断点在某个梯形内 叉积 + 二分
//
/*test data
1 1 0 10 60 0
3 1
40 10
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
==
0: 0
1: 1
0: 2
1: 1
2: 1
3: 1
4: 0
5: 1
0: 2
1: 2
2: 2
3: 2
4: 2
*/
#include <stdio.h>
#include <math.h>
#include <string.h>
const doub