问题 1534 --地精部落

1534: 地精部落

时间限制: 1 Sec  内存限制: 128 MB
提交: 51  解决: 8
[提交][状态][讨论版][命题人:]

题目描述

地精喜欢居住在连绵不绝的山脉中,一段长度为N的山脉可分为N段,每段有一个独一无二的高度HiHi1N之间的正整数。

对于每一段山脉,若它比与它相邻的两段(处于边缘的山脉只与一段山脉相邻)山脉都高,则称这段山脉为一段山峰;若它比相邻的山脉都矮,则称它为山谷。

地精对适宜居住的山脉有两个要求,地精喜欢饮酒,而且偏好把酒馆建在山谷中;地精还十分警觉,他们在每座山峰顶部都建立瞭望台,以防御外敌入侵;地精们希望,一座适宜居住的山脉,其中的每一段都应当能建设酒馆或瞭望台。

地精们会告诉你一座山脉的长度N,他们想知道长度为N的宜居山脉一共会有多少种。两座山脉AB不同,当且仅当存在至少一i,使得Ai ≠ Bi。由于这个方案数可能很大,最终答案应对P取模。

输入

输入仅一行,包含两个正整数NP

输出

输出仅一行,包含一个整数,即长度为N的宜居山脉的数量。

样例输入

4 7

样例输出

3

提示


对于20%的数据,满足N <= 10;



对于40%的数据,满足N <= 18;



对于70%的数据,满足N <= 550;



对于100%的数据,保证3 <= N <= 4200,P <= 10 ^ 9;



题目可以简化为:求由正整数1~N组成的波动序列数量(一个合法的序列满足:序列中任意一个数比相邻的两个数都要大,或者都要小),方案数对P取模;



对于样例,可行的方案共10种,例如:1 3 2 4 4 2 3 1 1 4 2 3

来源

[提交][状态]