Link:

BZOJ 1072 传送门

Solution:

一道直接next_permutation纯暴力就能过的题?

难道2007年时大家都不知道next_permutation这个函数吗

还是用复杂度更优的状压DP吧

设$dp[i][j]$为状态为$i$且对$d$余$j$的个数,

注意$dp[(1<<len)-1][0]$最后除去$\prod_{i=0}^9 cnt[i]!$,排除重复项

现在对状压DP状态的选取有了些感悟,

一般来说第一项表示状态,而第二项表示的一般都是于答案相关且包含答案情况的

(EX:求整除,表示当前对$d$的余数)

Code:

#include <bits/stdc++.h>

using namespace std;

int T,d,len,cnt[],dupli[],dp[][];
char s[]; int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%s %d",s,&d);len=strlen(s);
for(int i=;i<;i++) dupli[i]=;
memset(cnt,,sizeof(cnt));memset(dp,,sizeof(dp)); for(int i=;i<len;i++)
cnt[s[i]-'']++,dupli[s[i]-'']*=cnt[s[i]-'']; dp[][]=;
for(int i=;i<(<<len);i++)
for(int j=;j<d;j++)
if(dp[i][j])
for(int k=;k<len;k++)
if(!(i&(<<k)))
dp[i|(<<k)][(j*+(s[k]-''))%d]+=dp[i][j]; for(int i=;i<=;i++) dp[(<<len)-][]/=dupli[i];
printf("%d\n",dp[(<<len)-][]);
}
return ;
}

[BZOJ 1072] 排列perm的更多相关文章

  1. BZOJ 1072 排列

    Description 给一个数字串\(s\)和正整数\(d\), 统计\(s\)有多少种不同的排列能被\(d\)整除(可以有前导\(0\)).例如\(123434\)有\(90\)种排列能被\(2\ ...

  2. 【BZOJ】【1072】【SCOI2007】排列perm

    暴力 ……傻逼题我还WA了这么多次(有几次是忘了删调试信息……sigh) 直接统计0~9各有多少个,枚举数字就行了……因为是直接枚举的数字,而不是枚举用了s中的哪一位,所以是不用去重的!(我一开始写的 ...

  3. BZOJ 1072: [SCOI2007]排列perm 状态压缩DP

    1072: [SCOI2007]排列perm Description 给一个数字串s和正整数d, 统计s有多少种不同的排列能被d整除(可以有前导0).例如123434有90种排列能被2整除,其中末位为 ...

  4. [BZOJ 1072] [SCOI2007] 排列perm 【状压DP】

    题目链接:BZOJ 1072 这道题使用 C++ STL 的 next_permutation() 函数直接暴力就可以AC .(使用 Set 判断是否重复) 代码如下: #include <io ...

  5. BZOJ 1072 [SCOI2007]排列perm

    1072: [SCOI2007]排列perm Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1268  Solved: 782[Submit][Sta ...

  6. bzoj 2111: [ZJOI2010]Perm 排列计数 (dp+卢卡斯定理)

    bzoj 2111: [ZJOI2010]Perm 排列计数 1 ≤ N ≤ 10^6, P≤ 10^9 题意:求1~N的排列有多少种小根堆 1: #include<cstdio> 2: ...

  7. SCOI2007排列perm

    1072: [SCOI2007]排列perm Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 805  Solved: 497[Submit][Stat ...

  8. [BZOJ1072][SCOI2007]排列perm 状压dp

    1072: [SCOI2007]排列perm Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2488  Solved: 1546[Submit][St ...

  9. bzoj1072【SCOI2007】排列perm

    1072: [SCOI2007]排列perm Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1479  Solved: 928 [id=1072&q ...

随机推荐

  1. vue父组件中修改子组件样式

    1. 使用全局样式 <style> /* 全局样式 */ </style> <style scoped> /* 本地样式 */ </style> 2. ...

  2. COGS1752. [BOI2007]摩基亚Mokia CDQ

    CDQ的板子题 #include<cstdio> #include<cstring> #include<iostream> #include<algorith ...

  3. 纯css实现 switch开关

    <!-- 直接看代码,利用了css3兄弟选择器 --><!-- html --> <button class="switch"> <inp ...

  4. 如何开始创建第一个基于Spring MVC的Controller

    万事开头难,良好的开端是成功的一半! 以下示例怎么开始创建我们的第一个Spring MVC控制器Controller 1.新建一个java类,命名为:MyFirstController,包含以下代码, ...

  5. hdu 1520Anniversary party 树形dp入门

    There is going to be a party to celebrate the 80-th Anniversary of the Ural State University. The Un ...

  6. 小程序根据input输入,动态设置按钮的样式

    [需求]实现当手机号已填写和协议已勾选时,“立即登录”按钮变亮,按钮可点击:若有一个不满足,按钮置灰,不可点击:实现获取短信验证码,倒计时提示操作:对不满足要求内容进行toast弹窗提示. <v ...

  7. 报错!!!!!!!!!!!org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSessionRepositoryFilter' is defined

    报错!!!!!!!!!!! 因用maven项目不是很熟练,经常在Maven转Web项目(为什么要转web项目?因为要在tomcat中跑起来.maven项目好像是可以直接部署到tomcat的,或集成to ...

  8. #error,在xib文件中拷贝按钮所造成的错误.

    https://www.evernote.com/shard/s227/sh/3e35a7b3-f40c-46df-8ae0-e7522310c18b/742311974127f12eaafae07a ...

  9. swift中_的用法,忽略默认参数名。

    swift中默认参数名除了第一个之外,其他的默认是不忽略的,但是如果在参数的名字前面加上_,就可以忽略这个参数名了,虽然有些麻烦,但是这种定义也挺好,而且不想知道名字或者不想让别人知道名字的或者不用让 ...

  10. Iframe跨域嵌入页面自动调整高度的办法

    http://www.a.com/A.html http://www.a.com/B.html http://www.a.com/D.js http://www.c.com/C.html A.html ...