题目名称 2408. [SCOI 2007]排列
输入输出 wulipailie.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 5
题目来源 GravatarSOBER GOOD BOY 于2016-08-01加入
开放分组 全部用户
提交状态
分类标签
状压DP 连通性
分享题解
通过:89, 提交:133, 通过率:66.92%
GravatarHzoi_Hugh 100 0.090 s 4.22 MiB C++
Gravatar_小妖 100 0.097 s 4.61 MiB C++
Gravatarhzoi_xx 100 0.106 s 4.26 MiB C++
Gravatar_小妖 100 0.110 s 4.61 MiB C++
Gravatar~玖湫~ 100 0.111 s 4.22 MiB C++
Gravatar하루Kiev 100 0.115 s 4.26 MiB C++
GravatarNawox 100 0.123 s 4.22 MiB C++
GravatarBaDBoY 100 0.126 s 6.18 MiB C++
Gravatar~玖湫~ 100 0.137 s 4.22 MiB C++
GravatarGilgamesh 100 0.173 s 15.55 MiB C++
关于 排列 的近10条评论(全部评论)
GravatarAntiLeaf
2017-05-25 16:03 9楼
坑死人的优先级 == 高于 & 记得加括号 (bgm18)
Gravatar~玖湫~
2017-05-24 08:21 8楼
回复 @Hallmeow :
666
Gravatar君莫笑
2017-05-20 10:58 7楼
回复 @Hallmeow :
WTF
GravatarHzoi_Mafia
2017-05-20 10:51 6楼
回复 @我只是很懵 :
因为爱情啊
GravatarGilgamesh
2017-05-20 10:43 5楼
Hallmoewmap+next_permutation() 暴力A。就是略慢。。。
GravatarHallmeow
2017-05-20 10:11 4楼
回复 @oi菜鸟 :
为啥
GravatarA_LEAF
2017-05-18 17:16 3楼
最后需要处理一下重复的出现,否则不对,f[i][j]表示选取哪几个数(当前状态)余数为j,转移方程 f[i | (1<<k)][(j * 10 + s[k]) % d] += f[i][j]  ((i & (1<<k)) == 0) ,最后应输出f[1<<(len-1)][0]处理重复出现后的ans(排列数)
GravatarBaDBoY
2017-05-18 10:17 2楼
数据范围:
20%的数据满足:s的长度不超过5, 1<=T<=5
50%的数据满足:s的长度不超过8
100%的数据满足:s的长度不超过10, 1<=d<=1000, 1<=T<=15
GravatarAntiLeaf
2016-08-01 20:00 1楼

2408. [SCOI 2007]排列

★★   输入文件:wulipailie.in   输出文件:wulipailie.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

给一个数字串s和正整数d, 统计s有多少种不同的排列能被d整除(可以有前导0)。例如123434有90种排列能被2整除,其中末位为2的有30种,末位为4的有60种。

输入:

输入第一行是一个整数T,表示测试数据的个数,以下每行一组s和d,中间用空格隔开。s保证只包含数字0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

输出:

每个数据仅一行,表示能被d整除的排列的个数。

【样例输入】

7

000

1

001

1

1234567890

1

123434

2

1234

7

12345

17

12345678

29

【样例输出】

1

3

3628800

90

3

6

1398

【提示】

数据范围:

20%的数据满足:s的长度不超过5, 1<=T<=5

50%的数据满足:s的长度不超过8

100%的数据满足:s的长度不超过10, 1<=d<=1000, 1<=T<=15

【来源】

在此键入。