[bzoj1072]排列
2024-08-31 02:10:52
考虑用状压dp枚举排列,即f[i][j]表示当前状态为i,余数为j的方案数,考虑在末尾新增一个字符来转移即可,注意最后答案要除以排列组合
1 #include<bits/stdc++.h>
2 using namespace std;
3 int t,d,n,tot[15],f[2005][1005];
4 char s[15];
5 int main(){
6 scanf("%d",&t);
7 while (t--){
8 scanf("%s%d",s,&d);
9 n=strlen(s);
10 memset(tot,0,sizeof(tot));
11 for(int i=0;s[i];i++)tot[s[i]-'0']++;
12 memset(f,0,sizeof(f));
13 f[0][0]=1;
14 for(int i=0;i<(1<<n);i++)
15 for(int j=0;j<n;j++)
16 if (!(i&(1<<j)))
17 for(int k=0;k<d;k++){
18 int kk=(k*10+s[j]-'0')%d;
19 f[i+(1<<j)][kk]=f[i+(1<<j)][kk]+f[i][k];
20 }
21 for(int i=0;i<10;i++)
22 for(int j=1;j<=tot[i];j++)f[(1<<n)-1][0]/=j;
23 printf("%d\n",f[(1<<n)-1][0]);
24 }
25 }
最新文章
- css 水平垂直居中
- 【代码笔记】iOS-两个滚动条,上下都能滑动
- Intent七大属性
- Orchard官方文档
- Disable right click on the website
- Nginx - Additional Modules, SSL and Security
- (转)ligerUI 使用教程之Tip介绍与使用
- WinAPI——模拟正弦波
- Codeforces 148D Bag of mice 概率dp(水
- scala io,ubuntu常见配置
- android openGl视频
- 【新发现】不用苹果开发账号就能申请ios证书真机调试
- 2017ecjtu-summer training #11 POJ 1018
- asp.net core系列 25 EF模型配置(隐藏属性)
- MQTT研究之EMQ:【wireshark抓包分析】
- NativeClient开发指南
- linux下nc的使用
- html全选和取消全选JS
- WEB-DICT词库计划
- vue项目引入element