h: =proc(l,f)选项记忆;局部k;如果min(l[])>0,则
`如果`(nops(f)=0,1,h(map(x->x-1,l[1..f[1]]),subsop(1=[][],f))
nops(l)中的k为else,而l[k]>0由-1做od;
`如果`(nops(f)>0且f[1]>=k,h(底土(k=2,l),f),0)+
`如果`(k>1且l[k-1]=0,h(底土(k=1,k-1=1,l),f),0)
fi(菲涅耳)
结束时间:
g: =l->`if`(add(`if'(l[i]::奇数,(-1)^i,0),i=1..nops(l))=0,
`如果`(l=[],1,h([0$l[1],底土(1=[][],l)),0):
a: =n->g(排序(映射(i->numtheory[pi](i[1])$i[2],ifactors(n)[2]),`>`)):
|