,则 .
即有 ,考虑异或是在做不进位加法,则有 .
故数位 dp 记 表示从高到低填到第 位, 有没有顶到上界(前 位和 一样,以及 是不是非 ).
记忆化搜索,很好写。
int solve(int pos,int s1,int s2,int s3,int t1,int t2,int t3){
if(pos==n+1)
return t1&&t2&&t3;
if(vis[pos][s1][s2][s3][t1][t2][t3])
return f[pos][s1][s2][s3][t1][t2][t3];
int &now=f[pos][s1][s2][s3][t1][t2][t3];
vis[pos][s1][s2][s3][t1][t2][t3]=1;
for(int a=0;a<=min(v[pos]+s1,1);a++)
for(int b=0;b<=min(v[pos]+s2,1);b++)
for(int c=0;c<=min(v[pos]+s3,1);c++){
int p1=s1|(a<v[pos]),p2=s2|(b<v[pos]),p3=s3|(c<v[pos]);
int x=a^b,y=b^c,z=a^c;
int q1=t1|(x&&y),q2=t2|(y&&z),q3=t3|(x&&z);
cadd(now,solve(pos+1,p1,p2,p3,q1,q2,q3));
}
return now;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?