分析:
k很小,可以状压。
f[S][i]表示状态S表示在i之前k+1个中点的边数奇偶情况
之后转移的时候,S的最后一位不能为1
附上代码:
#include#include #include #include #include #include #include using namespace std;#define N 35#define mod 1000000007#define M 1<<9int f[N][N][M][10],num,n,m,k;int main(){ scanf("%d%d%d",&n,&m,&k); f[1][0][0][0]=1; for(int i=1;i =1) { (f[i][j+1][S^(1< < >1][0]+=f[i][j][S][k])%=mod; } } } } } printf("%d\n",f[n][m][0][0]); return 0;}