题意很简单,给你一个正整数数n,将n拆分成一个正整数数字序列,要求数字序列和为n且是个回文并且左半部分的序列非降。问n拆分成这样的序列有几种方案?
设d(n,k)表示n左右两边是k的时候的方案数(注意n不包含k),那么递推式:
表示当前这一种方案(n,k)加上方案(n-2i,i)的方案数,注意一下边界。
本题其实就是一个递推式,由于用到了记忆化所以就写得跟dp一样了。。。。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
typedef