Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:我的想法,比较简单点 大家可以看看In Reply To:我的想法,比较简单点 大家可以看看 Posted by:thisissqy0619 at 2009-07-19 06:37:37 > //我从反面考虑,将不相交的情况列举出来 > > #include <stdio.h> > > int main() > { > int x1,y1,x2,y2,xl,yt,xr,yb,i,n,a,b,c,f1,f2,f3,f4,temp; > scanf("%d",&n); > for(i=0;i<n;i++) > { > scanf("%d%d%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&xl,&yt,&xr,&yb); > if(xl>xr) > { > temp=xl; > xl=xr; > xr=temp; > } > if(yt<yb) > { > temp=yt; > yt=yb; > yb=temp; > } > a=y1-y2; > b=x2-x1; > c=x1*y2-y1*x2; > f1=a*xl+b*yb+c; > f2=a*xl+b*yt+c; > f3=a*xr+b*yb+c; > f4=a*xr+b*yt+c; > if(f1>0&&f2>0&&f3>0&&f4>0||f1<0&&f2<0&&f3<0&&f4<0) //判断线段所在直线是否与矩形相交 > printf("F\n"); > else if((x1>xr&&x2>xr)||(x1<xl&&x2<xl))//若线段所在直线与矩形相交,则满足一下两种情况的时候线段不与矩形相交 > printf("F\n"); > else if((y1>yt&&y2>yt)||(y1<yb&&y2<yb)) > printf("F\n"); > else > printf("T\n"); > } > return 0; > } 很有想法,( ^_^ )不错嘛 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator