【bzoj1072】SCOI2007排列
状压dp,f[i][j]表示当前取了i,模数余j的状态。
然后向后推,枚举可能的数即可。
注意每个数存在重复,最后要除以相应出现次数的阶乘。
#include<bits/stdc++.h> using namespace std; int n,m,a[10],c[10],len,f[1050][1010],ans; char s[20]; int main(){ int T;scanf("%d",&T); while(T--){ memset(c,0,sizeof(c));memset(f,0,sizeof(f)); scanf("%s%d",s,&m);len=strlen(s);f[0][0]=1; for(int i=0;i<len;i++)c[s[i]-'0']++,a[i]=s[i]-'0'; for(int k=0;k<(1<<len);k++) for(int i=0;i<len;i++)if(!(k&(1<<i))) for(int j=0;j<m;j++)f[k^(1<<i)][((10*j)+a[i])%m]+=f[k][j]; ans=f[(1<<len)-1][0]; for(int i=0;i<=9;i++) for(int j=2;j<=c[i];j++)ans/=j; printf("%d\n",ans); } return 0; }
zzq wc-ctsc-apio-NOI Au;yql精通多项式;zyz精通女装;由乃精通数据结构;孔老师是毒奶大师;我没有学上:我们都有光明的前途。
分类:
算法
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为何PostgreSQL没有聚集索引?解读两大数据库的设计差异
· C#线程池核心技术:从原理到高效调优的实用指南
· .NET 的全新低延时高吞吐自适应 GC - Satori GC
· 使用 C++ 20 协程降低异步网络编程复杂度
· 使用 libdivide 加速整数除法运算
· SuperSocket 2.0 的发布标志着.NET Socket 服务器框架迈入了一个全新的时代
· 一个使用 WPF 开发的 Diagram 画板工具(包含流程图FlowChart,思维导图MindE
· JDK网站最终的拼图
· MySQL的表空间释放
· 游戏中常用的平滑曲线函数:高中生也能看懂的代码分析