题意:用一个长度为n的排列,生成一个长度为n-1的up-down序列。若后一个比前一个大,则为0。反之,则为1。给定一个长度为n-1的updown序列,问符合序列的合法排列数量.例:1,2,3,6,4,5 is 0,0,0,1,0. 分析:设状态 前1-i数字放置并且最后第i个位置放j的合法方案数,如果输入序列的第i位是0, 就需要往 转移, 否则需要往 转移. 利用前缀和优化一下 DP 即可做到 . #include<bits/stdc++.h> using namespace std; const int mod=1e9+7; int dp[5005][5005...