D5 F

最近见到了好多跟排列有关的状压dp,好像略微会了一点,用 dp[i][s][j]表示第i位状态为s选择j的方案数,然后递推。
早起大概可以提高人的智商但是会导致人甚至不清,初始化写错了自闭了半个小时
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 1e9+;
int n;string s;
int cal(int num){
int res = ;
while(num){
res+=num%;
num>>=;
}
return res;
}
int dp[][<<][];
int main(){
ios::sync_with_stdio(false);
cin>>n>>s;s="**"+s;
for(int i=;i<=n;i++){
dp[][<<(i-)][i]=;
}
for(int i=;i<=n;i++) {
for (int j=;j<(<<n); j++) {
if(cal(j)!=i)continue;
for(int k=;k<=n;k++){
if(!((<<k-)&j))continue;
for(int l=;l<=n;l++) {
if(!((<<l-)&j))continue;
if (s[i]=='') {
if(!(l==*k||k==*l))
dp[i][j][k] += dp[i - ][j ^ ( << k - )][l];
} else {
if((l==*k||k==*l))
dp[i][j][k]+=dp[i-][j^(<<k-)][l];
}
dp[i][j][k]%=mod;
}
}
}
}
ll ans=;
for(int k=;k<=n;k++){
ans=(ans+dp[n][(<<n)-][k])%mod;
}
cout<<ans<<endl;
}
D5 F的更多相关文章
- 反调试技术常用API,用来对付检测od和自动退出程序
在调试一些病毒程序的时候,可能会碰到一些反调试技术,也就是说,被调试的程序可以检测到自己是否被调试器附加了,如果探知自己正在被调试,肯定是有人试图反汇编啦之类的方法破解自己.为了了解如何破解反调试技术 ...
- Verilog学习笔记简单功能实现(五)...............序列检测设计
这里采用夏宇闻教授第十五章的序列检测为例来学习; 从以上的状态转换图可以写出状态机的程序: module seqdet(x,out,clk,rst); input x,clk,rst; output ...
- 浅谈DevExpress<三>:在GridView中加载动态图片
今天的演示效果如下:在GridView中的下拉框中选中一种颜色,则后面的加载相应的图片,如下图: 1.
- C# 语言规范_版本5.0 (第6章 转换)
1. 转换 转换(conversion) 使表达式可以被视为一种特定类型.转换可导致将给定类型的表达式视为具有不同的类型,或其可导致没有类型的表达式获得一种类型.转换可以是隐式的 (implicit) ...
- C#6.0语言规范(六) 转换
转换能够被视为是一个特定类型的表达式.转换可能会导致给定类型的表达式被视为具有不同的类型,或者它可能导致没有类型的表达式获取类型.转换可以是隐式或显式的,这决定了是否需要显式转换.例如,从类型int到 ...
- C# Language Specification 5.0 (翻译)第六章 转换
转换使表达式可以当做一个明确的类型来加以处理.转换使得所给定类型的表达式以不同类型来处理,或使得没有某个类型的表达式获得该类型.转换可以是显式或隐式的,而这决定了是否需要显式地强制转换.比方说,从类型 ...
- line-height用法总结
Line-height是前端用语,经常被前端开发人员经常使用. line-height设置1.5和150%有什么区别?这是一个比较常见的前端面试题. 定义: line-height指的是文本行基线间的 ...
- Mysql_以案例为基准之查询
查询数据操作
- 求解方程A5+B5+C5+D5+E5=F5
方程A5+B5+C5+D5+E5=F5刚好有一个满足0<A≤B≤C≤D≤E≤F≤75的整数解.请编写一个求出该解的程序: using System; namespace ReverseTheEx ...
随机推荐
- Deepin 15.4 更改为 阿里云源
自带的 软件包源 不好用,卡顿严重,准备替换它: 方式一:deepin linux 如何更新或者更换软件源(注意:好像不起作用) 方式二:[推荐]利用 阿里云 提供的镜像快速更换本地的 yum 源 ( ...
- vim8.0模式详解
pattern pattern.txt For Vim version 8.0. 最近更新: 2017年8月 VIM 参考手册 by Bram Moolenaar 译者: lang2 http://v ...
- 06、action操作开发实战
1.reduce: 2.collect: 3.count: 4.take: 5.saveAsTextFile: 6.countByKey: 7.foreach: package sparkcore.j ...
- centos7下使用rpm包安装clickhouse
clickhouse是由俄罗斯Yandex公司开发的列式存储数据库,于2016年开源,clickhouse的定位是快速的数据分析,对于处理海量数据的情况性能非常好,在网上也有很多测试的案例,在大数据的 ...
- hadoop-网站收藏
Ubuntu14.04安装配置Hadoop2.6.0(完全分布式)与 wordcount实例运行 http://www.linuxidc.com/Linux/2015-01/112029p2.htm ...
- Java之线程池深度剖析
1.线程池的引入 引入的好处: 1)提升性能.创建和消耗对象费时费CPU资源 2)防止内存过度消耗.控制活动线程的数量,防止并发线程过多. 使用条件: 假设在一台服务器完成一 ...
- Nodejs 使用log4js日志
一.创建log4.js文件,保存日志到log文件,并在控制台输出,如果不控制台输出,把删除红色的代码 const log4js = require('log4js'), path = require( ...
- 整体C#与Sql培训内容及结构
图如果看不清可以右键存图片到本地
- 在新安装的Centos中安装python3.7 解决pip和yum问题
首先要先安装依赖包: yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-deve ...
- Android内存泄漏杂谈
内存泄漏:是指内存得不到GC的及时回收,从而造成内存占用过多.从而导致程序Crash,也就是常说的OOM. 一.static 先来看以下一段代码 public class DBHelper { pri ...