對於一個確定串
fi,si=∑jfi−1,j fi,j=fi−1,j,j≠si
因爲轉移都是形式一樣的我試着把所有串的
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long ll;
#define read(x) scanf("%d",&(x))
ll n,m,P;
int main(){
freopen("invisible.in","r",stdin);
freopen("invisible.out","w",stdout);
cin>>n>>m; P=1e9+7;
ll x=1,y=0;
for (int i=1;i<=n;i++){
ll sum=(x+y*m)%P;
x=x*m%P;
y=(sum+y*(m-1))%P;
}
cout<<(x+y*m)%P<<endl;
return 0;
}