竞赛
考级
【算法分析】 分析题目发现,可以进行递归。dfs(x)dfs(x)dfs(x) 里返回将 xxx 只牛分裂会有几群牛在平静地吃草。递归终止条件是当这群牛的数目小于等于 kkk,或者不能分裂成两堆时。 【参考代码】 【时间复杂度】 O(logn)O(logn)O(logn) 【预计得分】 100pts100pts100pts
tijie题解
【算法分析】 由题意, ∵不断分群,∴用递归. 又∵“如果这一群奶牛可以精确地分成两部分,这两部分的牛数恰好相差K头,那么在三岔路口牛群就会分裂。否则,牛群不会分裂,她们都将在这里待下去,平静地吃草。 请计算,最终将会有多少群奶牛在平静地吃草。”. ∴结束条件为“n<=k||(n+k)%2”. 故本题核心代码(即递归函数)为: 【最终答案】: * 注:本题解仅供参考;独立思考,勿依赖题解。
提交答案之后,这里将显示提交结果~