| ||||||||||
| 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:用二分做的,老是w,是不是输出格式的错误啊,请大牛找找,谢谢了。In Reply To:用二分做的,老是w,是不是输出格式的错误啊,请大牛找找,谢谢了。 Posted by:dakecaoxin at 2010-03-10 12:34:18 >
> #include <iostream>
> using namespace std;
> __int64 a[5050],b[5050],box[5050];
> int main()
> {
> int n;
> __int64 m,d,u,r,l;
> int i,j;
> __int64 x,y;
> __int64 h;
> __int64 lef,rig;
> while(1){
> scanf("%d",&n);
> if(n==0)break;
> scanf("%I64d%I64d%I64d%I64d%I64d",&m,&d,&u,&r,&l);h=u-d;
> //输入隔离边
> a[0]=l;b[0]=l;
> memset(box,0,sizeof(box));
> for(i=1;i<=n;i++)
> scanf("%I64d%I64d",&a[i],&b[i]);
> a[n+1]=r;b[n+1]=r;
> //输入玩具位置。用二分求位置
> for(i=1;i<=m;i++){
> scanf("%I64d%I64d",&x,&y);
> lef=0;rig=n+1;
>
> while(lef+1<rig){
> j=(rig+lef)/2;
> if(a[j]!=b[j]&&(x-b[j])*h<(y-l+0.0)*(a[j]-b[j])){rig=j;}
> else if(a[j]==b[j]&&x<a[j]){rig=j;}//斜率不存在。
> else lef=j;
> }
> //记录盒子放的东西数目。
> rig--;
> box[rig]++;
> }
> //输出
> for(i=0;i<=n;i++){
> printf("%d: %d\n",i,box[i]);
> }
> cout<<endl;
> }
>
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator