您的位置:首页 > 其它

HDU 2552 三足鼎立

2017-10-13 14:19 417 查看
http://acm.hdu.edu.cn/showproblem.php?pid=2552

三足鼎立


Time Limit: 2000/1000 MS
(Java/Others)    Memory
Limit: 32768/32768 K (Java/Others)

Total Submission(s):
976    Accepted
Submission(s): 495


[align=left]Problem Description[/align]

MCA山中人才辈出,洞悉外界战火纷纷,山中各路豪杰决定出山拯救百姓于水火,曾以题数扫全场的威士忌,曾经高数九十九的天外来客,曾以一剑铸十年的亦纷菲,歃血为盟,盘踞全国各个要塞(简称全国赛)遇敌杀敌,遇佛杀佛,终于击退辽军,暂时平定外患,三人位置也处于稳态。

可惜辽誓不甘心,辽国征南大将军<耶律javac++>欲找出三人所在逐个击破,现在他发现威士忌的位置s,天外来客的位置u,不过很难探查到亦纷菲v所在何处,只能知道三人满足关系:

arctan(1/s) = arctan(1/u)+arctan(1/v)

注:

(其中0
<= x <= 1)

定义 f(s, u, v) = v*u-s*u-s*v
的值为<三足鼎立>

<耶律javac++>想计算<三足鼎立>的值

 

 

[align=left]Input[/align]
首先输入一个t,表示有t组数据,跟着t行:

输入s, u (s <= 12^3, u <= 2^20 且 s, u,
v > 0)

且s,u,v均为实数

 

 

[align=left]Output[/align]
输出 v*u-s*u-s*v 的值,为了简单起见,如果是小数,直接取整

比如:答案是1.7 则输出 1

 

 

[align=left]Sample Input[/align]

1 1 2

 

 

[align=left]Sample Output[/align]

1

 

 

[align=left]Author[/align]
英雄哪里出来
 

 

[align=left]Source[/align]

2008“缤纷下沙校园文化活动月”之大学生程序设计竞赛暨新生专场
 

 

[align=left]Recommend[/align]
lcy
 

题意很清楚,这个题我调用数据库做了,但是最后的答案用int强制转换就wrong,用%.0lf就对,可是%.0lf应该会进位。网上的大牛解了一下,说最后答案都是
1,可是我写了个答案都是1的代码也是wrong。。。。
 
答案全是1的,错了:
#include<stdio.h>

#include<math.h>

//double pi=3.1415926;

int main()

{

 int T;

 double u,s;

 scanf("%d",&T);

 while(T--)

 {

  scanf("%lf%lf",&s,&u);

  printf("1\n");

 }

 return 0;

}
 
AC的代码:
#include<stdio.h>

#include<math.h>

//double pi=3.1415926;

int main()

{

 int T;

 double v,u,s,ans;

 scanf("%d",&T);

 while(T--)

 {

  scanf("%lf%lf",&s,&u);

  v=atan2(1,s)-atan2(1,u);

  v=1/tan(v);

  ans=v*u-s*u-s*v;//在这里用int强制转换就wrong

  printf("%.0lf\n",ans);

  //printf("s=%lf u=%lf
v=%lf\n",s,u,v);

 }

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: