[NOIP模拟测试]:题

题目描述

出个题就好了.这就是出题人没有写题目背景的原因。
你在平面直角坐标系上。
你一开始位于$(0,0)$。
每次可以在上/下/左/右四个方向中选一个走一步。
即:从$(x,y)$走到$(x,y+1),(x,y-1),(x-1,y),(x+1,y)$四个位置中的其中一个。
允许你走的步数已经确定为$n$,现在你想走$n$步之后回到$(0,0)$。
但这太简单了,你希望知道有多少种不同的方案能够使你在n步之后回到$(0,0)$,当且仅当两种方案至少有一步走的方向不同,这两种方案被认为是不同的.
答案可能很大所以只需要输出答案对${10}^9+7$取模后的结果。
这还是太简单了,所以你给能够到达的格点加上了一些限制,一共有三种限制,加上没有限制的情况,一共有四种情况,用$0,1,2,3$标号:
$0.$没有任何限制,可以到达坐标系上所有的点。即能到达的点集为$\{ (x,y)|x,y为整数\}$
$1.$只允许到达x轴非负半轴上的点。即能到达的点集为$\{ (x,y)\|x为非负数,y=0\}$
$2.$只允许到达坐标轴上的点。即能到达的点集为$\{ (x,y)\|x=0或y=0\}$
$3.$只允许到达$x$轴非负半轴上的点,$y$轴非负半轴上的点以及第$1$象限的点。即能到达的点集为$\{ (x,y)\| x\geqslant 0,y\geqslant 0\}$


输入格式

一行两个整数(空格隔开)n和typ,分别表示你必须恰好走的步数和限制的种类。
typ的含义见【题目描述】


输出格式

一行一个整数ans,表示不同的方案数对${10}^9+7$取模后的结果。


样例

样例输入0:
100 0
样例输出0:
383726909
样例输入1:
100 1
样例输出1:
265470434
样例输入2:
100 2
样例输出2:
376611634
样例输入3:
100 3
样例输出3:
627595255


数据范围与提示

$10%$的数据,$typ=0,n\leqslant 100$
$10%$的数据,$typ=0,n\leqslant 1000$
$ 5%$的数据,$typ=0,n\leqslant 100000$
$10%$的数据,$typ=1,n\leqslant 100$
$10%$的数据,$typ=1,n\leqslant 1000$
$ 5%$的数据,$typ=1,n\leqslant 100000$
$10%$的数据,$typ=2,n\leqslant 100$
$15%$的数据,$typ=2,n\leqslant 1000$
$10%$的数据,$typ=3,n\leqslant 100$
$10%$的数据,$typ=3,n\leqslant 1000$
$ 5%$的数据,$typ=3,n\leqslant 100000$
以上$11$部分数据没有交集。
$100%$的数据,保证$n$为偶数,$2\leqslant n\leqslant 100000$,$0\leqslant typ\leqslant 3$。


题解

猜你喜欢

转载自www.cnblogs.com/wzc521/p/11254533.html