sb状压dp。
设f[i][j]表示字符串前i位和集合为j的串匹配的方案数。
枚举哪个字母直接转移就好了。
(话说为啥这种水题都有紫色难度
#include#define il inline#define vd void#define mod 1000003typedef long long ll;il int gi(){ int x=0,f=1; char ch=getchar(); while(!isdigit(ch)){ if(ch=='-')f=-1; ch=getchar(); } while(isdigit(ch))x=x*10+ch-'0',ch=getchar(); return x*f;}char _S[20][54];ll f[52][1<<15];int S[20][54],yes[53][27];int cnt[1<<15];int main(){#ifndef ONLINE_JUDGE freopen("2167.in","r",stdin); freopen("2167.out","w",stdout);#endif int T=gi(),n,k,len,U; for(int i=1;i<1<<15;++i)cnt[i]=cnt[i-(i&-i)]+1; while(T--){ n=gi(),k=gi();U=(1<