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)
注:
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
(其中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;
}
三足鼎立
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)
注:
![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
(其中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;
}
相关文章推荐
- hdu&nbsp;1848&nbsp;Fibonacci&amp;nbs…
- HDU Leftmost Digit
- hdu 1874 畅通工程续(最短路径)
- hdu 2393 Higher Math
- hdu 1016(一道经典的dfs)题意…
- HDU 1010 Tempter of the Bone
- HDU 1423 Greatest Common Increas…
- HDU 1009 FatMouse' Trade(肥老鼠…
- ZZULI_TEAM_PRACTICE(1) HDU 1212…
- ZZULI 1617 (HDU 1686)Oulipo (…
- HDU 1754 I Hate It(线段树模版…
- hdu 1217 Arbitrage
- hdu 1501 Zipper
- HDU 2103 Family planning
- HDU 1785 You Are All Excellent
- HDU 1282 回文数猜想
- hdu&nbsp;2147&nbsp;kiki&#039;s&nbsp;game(博奕)
- hdu 1102(最小生成树)
- hdu 1225 Football Score
- HDU:1287 破译密码