第七届ACM趣味编程循环赛 Round #2 ly的生日题解

题面:
ldq(李东庆)和wwl(王玮良)跟ly(刘莹)是好朋友,
鉴于ly是实验室唯一的“程序媛”,他们(ldq和wwl)想知道 ly 的生日日期,ly 最终给他们十个可能日期:
5月15日、5月16日、5月19日
6月17日、6月18日
7月14日、7月16日
8月14日、8月15日、8月17日
ly分别告诉ldq她生日的月份和wwl她生日的日子。
ldq:我不知道ly的生日,但我知道wwl也不会知道。
wwl:一开始我不知道ly的生日,现在我知道了。
ldq:那我也知道ly的生日了。
那么, ly的生日是哪天?

参考思路

1、在10个日子中,只有18日和19日出现过一次,如果ly生日是18或19日,那知道日子的wwl就能猜到月份,一定知道ly的生日是几月几日。ldq肯定wwl不知道ly的生日,因此推断生日不会在18或19日,继而判断不会在出现18或19日的5月和6月。所以她的生日一定是7月或8月。
2、根据wwl的表述,在7月和8月剩下的5个日子中,只有14日出现过两次。如果ly告诉wwl她的生日在14日,那wwl就没有可能凭ldq的一句话,猜到她的生日。所以14日被排除。现在的可能性只剩下7月16日、8月15日和8月17日。
3、在wwl说话后,ldq也知道了ly的生日,这表明生日月份不可能在8月。因为8月有两个可能的日子,7月却只有一个可能性。
所以答案是7月16日。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值