Panasonic Programming Contest 2020 比赛人数6617 慢,比赛开始后10分钟才看到题目,比赛题目比ABC要灵活些
Atcoder Panasonic Programming Contest 2020 C Sqrt Inequality 公式推导
总目录详见https://blog.csdn.net/mrcrack/article/details/104454762
在线测评地址https://atcoder.jp/contests/panasonic2020/tasks/panasonic2020_c
![]()
![]()
看到题目,觉得怎么这么简单,只是考sqrt函数,照着题目编写,样例全通过,提交WA.马上想到double数据类型,本身存在计算误差,是比大小的困难户,那如何比大小。
化成整数来比较,当然在编写double运算时,早就想到了,只是当时没觉得该题需要这样处理。
开始整数比较的公式推导

AC代码如下
#include <stdio.h>
#define LL long long
int main(){
LL a,b,c,d;
scanf("%lld%lld%lld",&a,&b,&c);
d=c-(a+b);
if(d<=0)printf("No\n");
else{
if(4*a*b<d*d)printf("Yes\n");
else printf("No\n");
}
return 0;
}
本文深入解析Atcoder Panasonic Programming Contest 2020中C题SqrtInequality的解决思路,分享了从初步尝试到发现double类型计算误差问题,最终通过整数比较的公式推导实现正确解答的过程。

7759

被折叠的 条评论
为什么被折叠?



