ABC C题
查看原帖
ABC C题
490694
Compound_Interest楼主2022/8/28 09:29

题解给了一个比较复杂难想的方法

请问各位神犇有没有其他好想的方法

#include <iostream>
#include <cstdio>
using namespace std;
struct pt{
	double x,y;
	void read(){
		cin>>x>>y;
	}
};
struct line{
	pt s,e;
	double a,b,c;
	line(){}
	double f(pt p){
		return a*p.x+b*p.y+c;
	}
	line(pt ss,pt ee):s(ss),e(ee){
		a=ss.y-ee.y;
		b=-ss.x+ee.x;
		c=0;
		c=-f(ss);
	}
	bool side(pt p,pt q){
		return f(p)*f(q)>=0;
	}
};
int main(){
	pt a,b,c,d;
	a.read();b.read();c.read();d.read();
	line l1(a,b),l2(b,c),l3(c,d),l4(d,a);
	puts(l1.side(c,d)&&l2.side(d,a)&&l3.side(a,b)&&l4.side(b,c)?"Yes":"No");
}

看到一份这样的代码,有神犇可以解释一下是用什么方法做的吗

2022/8/28 09:29
加载中...