零花钱

零花钱

题意分析

题意简化,将\(n\)元钱分给两个人,两人拿到的钱是整数,其中一个人的钱必须要多于另一个人,每人至少拿到钱。

思路点拨

因为是多组数据,\(T\)很大,并且\(n\)也很大,循环一个一个去计算多少种方案会超时。

从数学角度来看,其中一个人的钱必须要多于另一个人,也就是当两人钱都相等的时候,这时候不断取一个人的钱\(-1\)给另一个人,就可以构成一种方案。钱平分的时候,实际上前面就已经满足了方案,并且平分钱的这个数字就已经代表前面有多少次方案。

比如奇数\(7\)元,平均钱是\(3.5\),但是两人得到的钱必须是整数。
在此之前分钱的方案有:

  • \(1,6\)
  • \(2,5\)
  • \(3,4\)

共计三种,当奇数钱分发的时候,平均钱向下取整即是全部方案数,再往后增加实际上是重复的。

再来看偶数\(8\)元,平均钱是\(4\),两人得到的钱必须是整数。
在此之前分钱的方案有:

  • \(1,7\)
  • \(2,6\)
  • \(3,5\)

共计三种,当偶数钱分发的时候,平均钱\(-1\)即是全部方案数。

posted @ 2022-11-29 21:05  guanglong  阅读(78)  评论(0)    收藏  举报