编程题
### 问题描述 一座长度为 $n$ 的山脉 $h$ 可分为从左到右的 $n$ 段,每段有一个独一无二的高度 $h_i$,其中 $h_i$ 是 $1$ 到 $n$ 之间的正整数。 如果一段山脉比所有与它相邻的山脉都高,则这段山脉是一个山峰。位于边缘的山脉只有一段相邻的山脉,其他都有两段(即左边和右边)。 类似地,如果一段山脉比所有它相邻的山脉都低,则这段山脉是一个山谷。 小蓝打算在山谷上修建房屋 $A$,在山峰上修建房屋 $B$。小蓝希望这 $n$ 段山脉每段都可以修建房屋 $A$ 或房屋 $B$ 的其中之一,只有满足这个条件小蓝才会喜欢整座山脉。 现在你希望知道,长度为 $n$ 的被小蓝喜欢的山脉有多少种。由于答案较大,输出对 $p$ 取模的结果。 ### 输入格式 输入包含两个整数 $n,p$,含义见上文。 ### 输出格式 输出一个整数,表示对 $p$ 取余之后的结果。 ### 样例输入 ``` 4 7 ``` ### 样例输出 ``` 3 ``` ### 评测数据规模 对于所有评测数据,$3\leq{n}\leq{4200},p\leq{10^9 }$。
查看答案
赣ICP备20007335号-2