题解 CF65A 【Harry Potter and Three Spells】
CF的难度真的锅很严重
安利下窝的博客
这道题属于初一年级第九章不等式与不等式组的范围。依题意,如果 毒瘤的转换能够变成
下面进行推导:
沙子兑换铅的倍率是
同理,铅兑换金子的倍率是
那么,沙子换回沙子的倍率就是
由于我们希望越换越多,所以我们希望这个比率比
然而,我们把这个判断提交上去的时候……没错,你看到了红彤彤的 WA。
原因?
The first line contains
6 integersa ,b ,c ,d ,e ,f (0 \le a,b,c,d,e,f \le 1000 )
没看出来?
The first line contains
6 integersa ,b ,c ,d ,e ,f \large{0 \le a,b,c,d,e,f \le 1000}
看出来了吗?之前的运算都是基于
当然这也不赖大家,应该赖那个非常不靠谱的毒瘤生草员,这里吐槽一下,他翻译成了
这告诫我们 要学好嘤语,而且不要见到嘤文题就疯狂滚轮到翻译。
那么我们就要加一些特判:
-
如果铅不能换出金子,即
d = 0 时,一定不能换出金子,所以一切特判的先决条件都是d \ne 0 ; -
如果沙子能换出无限量的铅,即
0 单位的沙子能换出非零量的铅,金子会越换越多。总结为式子就是:a=0 , b \ne 0 用编程逻辑表达:
!a && b //若a不为0,则 !a 为0 -
如果铅能换出无限量的金子,即
c=0 时,能换出无限量的金子。用编程逻辑表达:!c
加上这些特判就能得满分了。
#include <stdio.h>
int a,b,c,d,e,f;
int main(void) {
scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f);
if(d && (a*c*e<b*d*f || (!a && b) || (!c))) puts("Ron");
else puts("Hermione");
return 0;
}
个人认为是写的最详尽的一篇。
完结撒花~