JAG Summer 2012 Day 4 C Connect
状压dp,由于枚举两维状态会GG,所以只枚举当前位置前m个的状态,就是
这个样子大概= =;
呆马:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <vector>
#include <queue>
#define inf 1000000007
#define maxn 130
#define maxm 18 using namespace std; int f[][maxm][];
int bit[][maxm];
char s[maxn][maxm];
int len[maxn];
int n,m,mxbit,hi; int up(int x, int y, int mask)
{
int cnt=len[x-], now=;;
for (int i=y;i<m;i++) cnt-=bit[mask][i];
for (int i=;i<y;i++) now+=bit[mask][i];
if (bit[mask][m] && s[x-][cnt-]==s[x][now]) return ;
return ;
} int lf(int x, int y, int mask)
{
int now=;
for (int i=;i<y;i++) now+=bit[mask][i];
if (bit[mask][] && s[x][now-]==s[x][now]) return ;
return ;
} int cal(int y, int mask)
{
int now=;
for (int i=;i<=y;i++) now+=bit[mask][i];
return now;
} void get_mask()
{
for (int i=;i<=mxbit;i++)
{
int now=i;
for (int j=;j<=m;j++)
{
bit[i][j]=now%;
now/=;
}
}
} int main()
{
scanf("%d%d",&n,&m);
mxbit=(<<m)-;
get_mask();
for (int i=;i<=n;i++)
{
scanf("%s",s[i]);
len[i]=strlen(s[i]);
}
for (int i=;i<=;i++)
for (int j=;j<=m;j++)
{
for (int mask=;mask<=mxbit;mask++)
f[i][j][mask]=-inf;
}
f[][][]=f[][][]=;
for (int i=;i<=n;i++)
{
int p=i&;
for (int j=;j<=m;j++)
for (int mask=;mask<=mxbit;mask++)
{
int tmp=(mask<<)&mxbit;
if (i== && j==) continue;
if (j==)
{
if (cal(m,mask)!=len[i-]) continue;
f[p][j][tmp]=max(f[p][j][tmp],f[p^][m][mask]);
f[p][j][tmp|]=max(f[p][j][tmp|],f[p^][m][mask]+*up(i,j,mask));
}
else
{
if (cal(j-,mask)>len[i]) continue;
f[p][j][tmp]=max(f[p][j][tmp],f[p][j-][mask]);
if (cal(j-,mask)<len[i])
f[p][j][tmp|]=max(f[p][j][tmp|],f[p][j-][mask]+*lf(i,j,mask)+*up(i,j,mask)); }
}
}
int ans=;
for (int mask=;mask<=mxbit;mask++)
if (cal(m,mask)==len[n])
ans=max(ans,f[n&][m][mask]);
printf("%d\n",ans);
return ;
}
Connect
JAG Summer 2012 Day 4 C Connect的更多相关文章
- Red Gate系列之八 SQL Connect 1.1.1.19 Edition 数据库连接及操作工具 完全破解+使用教程
原文:Red Gate系列之八 SQL Connect 1.1.1.19 Edition 数据库连接及操作工具 完全破解+使用教程 Red Gate系列之八 SQL Connect 1.1.1.19 ...
- 逻辑网络(Logical Network)
Introduction The VMM documentation indicates that “A logical network is used to organize and simplif ...
- Netflix:当你按下“播放”的时候发生了什么?
从用户端来看,使用Netflix是很简单的,按下播放键之后视频就像变魔术一样完美呈现了.看起来很容易是吧?然而实际不是这样的.了解过云计算的人可能会简单地以为,既然Netflix使用AWS来提供视频服 ...
- 打开Visual Studio 2012的解决方案 连接 Dynamics CRM 2011 的Connect to Dynamics CRM Server 在其工具下没有显示
一.使用TFS 代码管理,发现Visual Studio 2012 菜单栏 工具下的Connect to Dynamics CRM Server 没有显示. 平常打开VS下的工具都会出现Connect ...
- connect/express 的参考
1.Node.js[5] connect & express简介 对connect中间件的分类比较容易理解. http://www.cnblogs.com/luics/archive/2 ...
- Symantec Backup Exec 2012 Agent For Linux安装
Backup Exec 2012 介绍 Backup Exec 2012 是一种为虚拟和物理环境提供保护的集成产品,能够简化备份和灾难恢复,并提供了无可匹敌的恢复功能.借助于强大的 Symantec ...
- SQL SERVER 2012/2014 链接到 SQL SERVER 2000的各种坑
本文总结一下SQL SERVER 2012/2014链接到SQL SERVER 2000的各种坑,都是在实际应用中遇到的疑难杂症.可能会有人说怎么还在用SQL SERVER 2000,为什么不升级呢? ...
- Windows Server 2012 虚拟化实战:域
在Windows Server系统中,一些服务必需要构建在域的环境中,这不仅是为了统一验证和资源共享,同时也是为了网络安全.为构建虚拟化测试,我们需要先搭建域环境.之前先来大概了解一下域. 在使用工作 ...
- [转]Nodejs基础中间件Connect
Nodejs基础中间件Connect 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的J ...
随机推荐
- 使用nginx和iptables做访问权限控制(IP和MAC)
之前配置的服务器,相当于对整个内网都是公开的 而且,除了可以通过80端口的nginx来间接访问各项服务,也可以绕过nginx,直接ip地址加端口访问对应服务 这是不对的啊,所以我们要做一些限制 因为只 ...
- Ubuntu播放yuv文件
mplayer -demuxer rawvideo -rawvideo w=176:h=144 test.yuv mplayer -fps 30 test.264 ffmpeg采集摄像头视频数据 ff ...
- swift-重写方法和属性、禁止重写
/*子类可以为继承来的实例方法,类方法,实例属性,或下标提供自己定制的实现.我们把这种行为叫重写. 如果要重写某个特性,你需要在重写定义的前面加上 关键字.这么做,你就表明了你是想提供一个重写 版本, ...
- C#中图片新增水印
/// <summary> /// 在图片上生成图片水印 /// </summary> /// <param name="Path">原服务器图 ...
- Linux学习笔记
性能问题排查: Linux系统出现了性能问题,一般我们可以通过top.iostat.free.vmstat等命令来查看初步定位问题.内存资源占用:free命令 IO占用:iostat -d -k 1 ...
- Spark 宏观架构&执行步骤
Spark 使用主从架构,有一个中心协调器和许多分布式worker. 中心协调器被称为driver.Driver 和被称为executor 的大量分布式worker 通信 Driver 运行在它自己的 ...
- CSS定位的三种机制:普通流、绝对定位和浮动
1.普通流: position : static – 元素框正常生成.即上述不对元素进行任何样式设置的默认形态. position : relative (此时设置top, right, bottom ...
- JMeter学习-027-JMeter参数文件(脚本分发)路径问题:jmeter.threads.JMeterThread: Test failed! java.lang.IllegalArgumentException: File distributed.csv must exist and be readable解决方法
前些天,在进行分布式参数化测试的时候,出现了如题所示的错误报错信息.此文,针对此做一个简略的重现及分析说明. JMX脚本线程组参数配置如下所示: 参数文件路径配置如下所示: 执行JMX脚本后,服务器对 ...
- 给div加上背景图片
<div class="panel-body" style="background:url('pages/upload/brief/img/bg.jpg');bac ...
- iOS开发masonry的一些使用简介
从一开始的纯代码计算frame,虽然自认为计算frame 刚刚的,但是到后来还是开始xib的自动约束和手动约束与frame搭配使用,经历这几种方式,大概一年前开始普遍使用masonry来代码约束之后也 ...