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:牛牛们,帮我看一下,确实wa的不知道怎么弄了...In Reply To:牛牛们,帮我看一下,确实wa的不知道怎么弄了... Posted by:yujiashan at 2006-12-22 21:25:52 > 基本思路是: > 分别判断矩形的四条边是否与线段相交。 > (两线段重叠不算相交) 重叠算相交也试了,一样wa > 谢谢了! > #include<stdio.h> > double xs,ys,xe,ye,a,b,c,d; > void solve() > { > double temp,xl=(a<c)?a:c,xr=(a>c)?a:c,yt=(b>d)?b:d,yb=(b<d)?b:d,xi=(xs<xe)?xs:xe,xa=(xs>xe)?xs:xe,yi=(ys<ye)?ys:ye,ya=(ys>ye)?ys:ye; > if (xe==xs) > { > if (xe==xl||xe==xr) > { > if (yi==yt) > { > printf("T\n"); > return; > } > if (ya==yb) > { > printf("T\n"); > return; > } > printf("F\n"); > return; > } > if (xe>xl&&xe<xr) > { > if (yi>yt) > { > printf("F\n"); > return; > } > if (ya<yb) > { > printf("F\n"); > return; > } > if (yi>yb&&ya<yt) > { > printf("F\n"); > return; > } > printf("T\n"); > return; > } > printf("F\n"); > return; > } > if (ye==ys) > { > if (ye==yb||ye==yt) > { > if (xi==xr) > { > printf("T\n"); > return; > } > if (xa==xl) > { > printf("T\n"); > return; > } > printf("F\n"); > return; > } > if (ye>yb&&ye<yt) > { > if (xi>xr) > { > printf("F\n"); > return; > } > if (xa<xl) > { > printf("F\n"); > return; > } > if (xi>xl&&xa<xr) > { > printf("F\n"); > return; > } > printf("T\n"); > return; > } > printf("F\n"); > return; > } > temp=((xe-xs)*(yt-ye))/(ye-ys)+xe; > if (temp>=xl&&temp<=xr&&temp>=xi&&temp<=xa) > { > printf("T\n"); > return; > } > temp=((xe-xs)*(yb-ye))/(ye-ys)+xe; > if (temp>=xl&&temp<=xr&&temp>=xi&&temp<=xa) > { > printf("T\n"); > return; > } > temp=(ye-ys)*(xl-xe)/(xe-xs)+ye; > if (temp>=yb&&temp<=yt&&temp>=yi&&temp<=ya) > { > printf("T\n"); > return; > } > temp=(ye-ys)*(xr-xe)/(xe-xs)+ye; > if (temp>=yb&&temp<=yt&&temp>=yi&&temp<=ya) > { > printf("T\n"); > return; > } > printf("F\n"); > } > int main() > { > int n; > scanf("%d",&n); > while (n--) > { > scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&xs,&ys,&xe,&ye,&a,&b,&c,&d); > solve(); > } > return 0; > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator