poj 1066

来源:互联网 发布:上海政府数据开放平台 编辑:程序博客网 时间:2024/06/05 08:41

本来是计算几何的。。不过数据水。。可以用巧(luan)妙(gao)的方法过掉。

贴代码。

#include<iostream>#include<cstdlib>using namespace std;int geti(int x,int y){if(y==0)return x-1;if(x==100)return 99+y;if(y==100)return 299-x;return 399-y;}int main(){int i=0,n,x0[30],y0[30],x1[30],y1[30],from,to,s[400]={};double x,y,k;for(cin>>n;i<n;i++)cin>>x0[i]>>y0[i]>>x1[i]>>y1[i];cin>>x>>y;for(i=0;i<n;i++){k=(y0[i]-y1[i])/(x0[i]+1e-6-x1[i]);from=geti(x0[i],y0[i]);to=geti(x1[i],y1[i]);if((y-y1[i]>k*(x-x1[i]))-(x0[i]<x1[i]))swap(from,to);for(;from!=to;to=(to+399)%400)s[to]++;}for(i=0;i<400;i++)if(s[i]<n)n=s[i];cout<<"Number of doors = "<<n+1<<endl;return 0;}


0 0
原创粉丝点击