Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
Register

## 我知道啦。这里问的是是否存在直线，不是线段！！！

Posted by lijunle at 2011-04-08 19:24:51 on Problem 3304
In Reply To:为什么用黑书的判断相交方法不能过，用discuss里面的可以？ Posted by:lijunle at 2011-04-08 19:15:37
```> 判断相交的函数：（黑书的模板，WA）
> int segCross(Segment a, Segment b) {
> 	int c1 = getCross(a.a, a.b, b.a);
> 	int c2 = getCross(a.a, a.b, b.b);
> 	int c3 = getCross(b.a, b.b, a.a);
> 	int c4 = getCross(b.a, b.b, a.b);
>
> 	if ((c1 ^ c2) == -2 && (c3 ^ c4) == -2) {
> 		return 1;
> 	}
>
> 	if (c1 == 0 && getDot(b.a, a.a, a.b) <= 0) {
> 		return 2;
> 	}
> 	if (c2 == 0 && getDot(b.b, a.a, a.b) <= 0) {
> 		return 2;
> 	}
> 	if (c3 == 0 && getDot(a.a, b.a, b.b) <= 0) {
> 		return 2;
> 	}
> 	if (c4 == 0 && getDot(a.b, b.a, b.b) <= 0) {
> 		return 2;
> 	}
>
> 	return 0;
> }
>
> 用discuss里面有人的代码可以过：
> bool isCross(Segment a, Segment b) {
> 	if (getCross(a.a, b.a, b.b) * getCross(a.b, b.a, b.b) <= 0) {
> 		return true;
> 	}
> 	else {
> 		return false;
> 	}
> }
>
> 其余的函数是一样的。
```

Followed by: