P1277 风筝-逃亡 极其WS

Ronice 发表于 2006-11-02 21:29:49

 
描述 Description
       燕姿以出发地作为原点建立了一个坐标轴(原点为x,单位都为m),歌迷们也可以理解为坐标轴上的一点。
  歌迷的的追赶规律是这样的:第一群歌迷聚在一个点,而任何一群歌迷如果在1s内找不到燕姿的话就会分头去追,此时每一群歌迷都会分离成2群,分别沿坐标轴的正负两个方向移动一段距离l(由于追星心切,移动的时间忽略不计),然后又静止1s,再按同样的规则但移动的距离变为上一次的1/2再分开。直到某一群歌迷分头移动的距离<1m时,将由于筋疲力尽,人数过少而不能在分头行动。
  任意一群歌迷可以寻找到的的范围,都是以该群歌迷所处点为中心,半径始终为r的圆。另外,必须考虑的就是燕姿也时刻在跑(速度为v),把这理解为燕姿从原点上以一定速度沿x轴正方向移动。如果燕姿被一群歌迷发现了(也就是在一群歌迷的发现范围之内或者经过一群歌迷的发现范围之内),那么她就必须签名1次。
  现在,想知道燕姿必须签名多少次。(在歌迷发现范围以内以及距离歌迷发现范围0.1的范围内,燕姿也会被歌迷们发现)。
输入格式 Input Format
  输入只有一行 x,r,l,v(abs(x)<=2^20  r,l,v<=2^20) 分别是歌迷出发点坐标,歌迷发现范围的半径,第一群歌迷分头寻找后两群人各将移动的距离以及燕姿奔跑的速度。
输出格式 Output Format
  输出只有一个整数,表示燕姿必须签名多少次。

试验过了, 用0.00000001有3个点不能过,0.0000001就ac了
>=和>效果一样

题目阿…… 怎么看都和逃亡不相称,多好的一首歌啊,猥琐成这样

var
  x,r,l,v:real;
  t:longint;
  p:array[1..50] of boolean;

procedure main(a,b,c:real;i:longint);{x,l,syz x}
begin
  if b>=1-0.000001 then
    if (a>=c-r-0.1)and (a<=c+r+v+0.1) and (p[i]=false) then
      begin t:=t+1; p[i]:=true; end;
  if b+0.000001>1 then begin
    main(a+(b/2),b/2,c+v,i+1);  main(a-(b/2),b/2,c+v,i+1)
  end;
end;
begin
   readln(x,r,l,v);
   t:=0;
   main(x,l*2,0,1);
   writeln(t);
end.


关键词(Tag): vijos


收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定