ACM-ICPC 2011 Asia Phuket Regional [J] Consecutive Sums

ACM-ICPC 2011 Asia Phuket Regional [J] Consecutive Sums

Also bnu 12614
作为没有oi背景的大四生因为被拉去充数组队,只是为了突击算法,在短期内提高能力,所以并木有代码…

Problem

The sum of p (p>0) consecutive integers can often be equal to the sum of next q consecutive positive integers. For example:

9+10+11+12 = 13+14+15, Here p = 4 and q = 3
4+5+6+7+8 = 9+10+11, Here p = 5 and q = 3.

Given the value of q, how many possible values of p are there?

Solution

并不知道左边的数能不能是负数,所以…
设右边第一个数是 x ,左边第一个就是xp
p(xp)+p(p1)2=qx+q(q1)2
转化为下面的式子:
2x=pq+1+2q2pq

于是我们要考虑 pq 的取值
因为左边是2的倍数,所以要稍微考虑一下奇偶性的影响:

  1. 如果 q 是奇数,p是偶数的话: pq 是奇数, 2q2pq 是偶数: pq 取值是 q2 的奇约数
  2. 如果 q 是奇数,p是奇数的话: pq 是偶数, 2q2pq 是奇数: pq 取值是 q2 的奇约数*( q2 里面所有2的个数+1) = q2 的奇约数
  3. 如果 q 是偶数,p是偶数的话: pq 是偶数, 2q2pq 是奇数: pq 取值是 q2 的奇约数*( q2 里面所有2的个数+1)
  4. 如果 q 是偶数,p是奇数的话: pq 是奇数, 2q2pq 是偶数: pq 取值是 q2 的奇约数

于是总结结果:
1. if 2|q q2 的约数个数*2
2. else, q2 的所有约数个数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值