bzoj 1072: [SCOI2007]排列perm 状压dp
时间:2019-11-06
本文章向大家介绍bzoj 1072: [SCOI2007]排列perm 状压dp ,主要包括bzoj 1072: [SCOI2007]排列perm 状压dp 使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
code:
#include <bits/stdc++.h> #define N 1005 using namespace std; void setIO(string s) { string in=s+".in"; string out=s+".out"; freopen(in.c_str(),"r",stdin); // freopen(out.c_str(),"W",stdout); } char str[N]; int num[N],f[N<<1][N],poww[N],tax[11],fac[N],vis[11]; void solve() { memset(f,0,sizeof(f)); memset(tax,0,sizeof(tax)); memset(vis,0,sizeof(vis)); int mod,i,j,n,k; scanf("%s%d",str,&mod); n=strlen(str); fac[0]=poww[0]=1; for(i=1;i<=10;++i) fac[i]=fac[i-1]*i; for(i=1;i<=n;++i) poww[i]=poww[i-1]*10%mod; for(i=0;i<n;++i) num[i]=str[i]-'0', ++tax[num[i]]; f[0][0]=1; for(i=0;i<(1<<n);++i) { for(j=0;j<mod;++j) { int sz=0; for(k=0;k<n;++k) if(i&(1<<k)) ++sz; for(k=0;k<n;++k) { if(i&(1<<k)) continue; else { int nx=i|(1<<k); int cur=num[k]; f[nx][(j+cur*poww[sz]%mod)%mod]+=f[i][j]; } } } } int ans=f[(1<<n)-1][0]; for(i=0;i<n;++i) if(!vis[num[i]]) vis[num[i]]=1, ans/=fac[tax[num[i]]]; printf("%d\n",ans); } int main() { // setIO("input"); int T; scanf("%d",&T); while(T--) { solve(); } return 0; }
原文地址:https://www.cnblogs.com/guangheli/p/11808168.html
- 多迪技术总监揭秘:前端工程师主要做什么?前景怎么样?
- c#:Reflector+Reflexil 修改编译后的dll/exe文件
- testNG java.net.SocketException: Software caused connection abort: socket write error
- MyBatis.Net 学习手记
- 基于JavaScript 声明全局变量的三种方式详解
- 网页基础篇之如何制作简单的静态网页
- Mybatis.Net 整合 ODP.NET Managed
- 通过maven test 报org.apache.ibatis.binding.BindingException: Invalid bound statement
- 知道这几点,用微信小程序留住海量客户不是问题
- C#:DataTable映射成Model
- jenkins 多选框
- Oracle:ODP.NET Managed 小试牛刀
- C#:Func的同步、异步调用
- Python之路-day6
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- R语言基于协方差的SEM结构方程模型中的拟合指数
- Python贝叶斯回归分析住房负担能力数据集
- 基于R统计软件的三次样条和平滑样条模型数据拟合及预测
- R语言析因设计分析:线性模型中的对比
- R语言逻辑回归、方差分析 、伪R平方分析
- R语言逐步多元回归模型分析长鼻鱼密度影响因素
- R语言对回归模型进行协方差分析
- R语言多项式样条回归、非线性回归数据分析
- R语言中进行Spearman等级相关分析
- R语言相关分析和稳健线性回归分析
- R语言文本挖掘使用tf-idf描述NASA元数据的文字和关键字
- R语言对NASA元数据进行文本挖掘的主题建模分析
- 随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型
- R语言VAR模型的不同类型的脉冲响应分析
- R语言用向量自回归(VAR)进行经济数据脉冲响应研究分析