从低位到高位数位DP,f[i][j][k]表示已经填了后i位,转化的数字为j,后i位与x后i位的大小关系为k的方案数。
#includeconst int N=202,B=7,P=(1<<30)-1;char s[N];int T,n,y,i,j,k,t,a[N];struct Num{ int x[B]; Num(){for(int i=0;i P)c.x[i+1]++,c.x[i]&=P; return c; } Num operator-(Num b){ Num c; for(int i=0;i