[SCOI 2007] 排列
2024-10-02 08:15:35
[题目链接]
https://www.lydsy.com/JudgeOnline/problem.php?id=1072
[算法]
状压DP
[代码]
#include<bits/stdc++.h>
using namespace std;
#define MAXD 1000
const int MAXS = ; int i,j,k,T,len,d,MASK;
char s[];
long long f[MAXS][MAXD];
long long ans;
long long fac[];
int cnt[]; int main()
{ fac[] = ;
for (i = ; i <= ; i++) fac[i] = fac[i-] * i;
scanf("%d",&T);
while (T--)
{
scanf("%s%d",&s,&d);
len = strlen(s);
MASK = ( << len) - ;
memset(f,,sizeof(f));
memset(cnt,,sizeof(cnt));
for (i = ; i < len; i++) cnt[s[i] - '']++;
f[][] = ;
for (i = ; i <= MASK; i++)
{
for (j = ; j < d; j++)
{
for (k = ; k < len; k++)
{
if ((i & ( << k)) == )
f[i | ( << k)][(j * + s[k] - '') % d] += f[i][j];
}
}
}
ans = f[MASK][];
for (i = ; i < ; i++) ans /= fac[cnt[i]];
printf("%lld\n",ans);
} return ;
}
最新文章
- [收集]MVC3 HTML辅助方法集录
- 浅谈Android样式开发之layer-list
- ZeroMQ接口函数之 :zmq_close - 关闭ZMQ socket
- java并发编程系列
- Protocol and Delegate协议和代理
- Apache安装
- day15_集合第一天
- 关于配置服务器(IIS7)(二)
- 转: 使用virtualenv搭建独立的Python环境
- 让css初学者抓狂的属性float
- asp.net MVC开发过程中,使用到的方法(内置方法及使用说明)
- 浅谈.NET中闭包
- QT中实现中文的显示与国际化
- P2763: [JLOI2011]飞行路线
- android 四种堆状态
- INPUT输入框灰体提示
- java技术栈:项目概述
- 基于visual Studio2013解决C语言竞赛题之0607strcpy
- newlisp 注释生成文档
- Redis 安装与简单示例