SZ#G8C31. 骑士跳跃

提交4 通过1
通过率25%
时间限制2000ms
内存限制512MiB
    ID: 12049 传统题 2000ms 512MiB 尝试: 4 已通过: 1 难度: 普及 上传者: 标签>GESPGESP强化C++c++编程题组合数学组合数模运算

题目描述

题目描述

小泽正在研究一张无限延伸的二维方格棋盘。棋盘上的每一个格子都用坐标 (i,j)(i,j) 表示,横坐标和纵坐标均从原点向正方向延伸。开始时,一枚国际象棋中的骑士棋子正放在原点 (0,0)(0,0)

这枚棋子的移动方式与通常的骑士不同:当它位于格子 (i,j)(i,j) 时,下一步只能移动到下面两个格子中的一个:

  • (i+1,j+2)(i+1,j+2)
  • (i+2,j+1)(i+2,j+1)

小泽希望把棋子移动到指定的目标格 (X,Y)(X,Y)。一次完整的移动方案由沿途每一步所选择的移动方式决定;只要某一步的选择不同,就认为是不同的方案。

请计算从 (0,0)(0,0) 到达 (X,Y)(X,Y) 一共有多少种移动方案。由于答案可能很大,只需输出答案除以 109+710^9+7 后的余数。

输入格式

输入一行,包含两个整数 X,YX,Y,表示目标格子的坐标。

输出格式

输出一个整数,表示棋子从 (0,0)(0,0) 到达 (X,Y)(X,Y) 的方案数对 109+710^9+7 取模后的结果。

3 3
2

样例说明 #1

可以先走到 (1,2)(1,2) 再到 (3,3)(3,3),也可以先走到 (2,1)(2,1) 再到 (3,3)(3,3),因此共有 22 种方案。

2 2
0

样例说明 #2

无论怎样选择允许的移动,都无法恰好停在 (2,2)(2,2),所以答案为 00

999999 999999
151840682

数据范围与约定

1X1061\le X\le10^61Y1061\le Y\le10^6。输入中的所有数均为整数。