CCF201909-2 小明种苹果(续)(JAVA)

这篇博客详细介绍了如何利用JAVA解决CCF的一道题目,主要涉及计算T、D、E三个量。通过无遍历的方式,在读取输入数据过程中更新T、D、E,最终得出答案。解题策略包括针对T的累加或替换,D的判断更新以及E的连击计数。特别注意,当有三棵树连续落果时,连击计算有3种组合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解题思路:

这道题需要我们算出T、D、E,而这三个量都可以在每次读入输入数据时对其进行更新,从而在读完全部输入数据时得到的T、D、E就是我们的最终所求。

因此,对于这道题,我们可以采用无遍历的方式来做:

对于T来说,如果树a本次操作是非正值(疏果操作)那么进行累加,是正值(统计操作)则进行替换。最终将每棵树得到的Ta进行累加则可算出T。

对于D来说,如果某棵树某次的统计操作结果!=正常疏果后的计算结果,那么该树存在落果且在对该树进行所有操作之后D++。最终的D即为所求。

对于E来说,若树的棵树大于等于3棵那么我们需要记录下前两棵树的落果状况以便最后一棵树的浪子回头。我们用Combo来记录连击数,每有一个有缘树(有落果),Combo++。每有三棵树连续掉落则达成目标,E++,同时将Combo-1等待下一棵有缘树。若接下来的这棵树不是有缘树,那么一粒老鼠屎打坏一锅汤,Combo清零。最终累加算得的E即为所求。

此外,本题中有一点需值得注意的是,当只有三棵树且都有落果时,A1A2A3算一组,A2A3A1算一组,A3A1A2也算一组&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值