轮廓线插头DP。

设$f[i][j][a][b][c][d][e]$表示考虑到了$(i,j)$,轮廓线上3个下插头的位置分别为$a,b,c$,是否有右插头,已经放了$e$个$L$的方案数。

然后直接DP即可。

时间复杂度$O(nm^4)$。

#include<cstdio>
const int N=33,M=4530;
int n,m,cnt,o,i,j,k,x,id[N][N][N];long long f[2][M][2][4];char a[N];
struct P{int a,b,c;P(){}P(int _a,int _b,int _c){a=_a,b=_b,c=_c;}}q[M];
int main(){
scanf("%d%d",&n,&m);
for(i=0;i<=m;i++)for(j=i?i+1:0;j<=m;j++)for(k=j?j+1:0;k<=m;k++)q[cnt++]=P(i,j,k);
for(i=0;i<cnt;i++){
id[q[i].a][q[i].b][q[i].c]=i;
id[q[i].a][q[i].c][q[i].b]=i;
id[q[i].b][q[i].a][q[i].c]=i;
id[q[i].b][q[i].c][q[i].a]=i;
id[q[i].c][q[i].a][q[i].b]=i;
id[q[i].c][q[i].b][q[i].a]=i;
}
for(f[0][0][0][0]=i=1;i<=n;i++){
for(k=0;k<cnt;k++)for(x=0;x<4;x++)f[o][k][1][x]=0;
scanf("%s",a+1);
for(j=1;j<=m;j++){
o^=1;
for(k=0;k<cnt;k++)for(x=0;x<4;x++)f[o][k][0][x]=f[o][k][1][x]=0;
for(k=0;k<cnt;k++)for(x=0;x<4;x++){
if(f[o^1][k][0][x]){
if(a[j]=='.'){
f[o][k][0][x]+=f[o^1][k][0][x];
if(q[k].a==j)f[o][id[0][q[k].b][q[k].c]][1][x]+=f[o^1][k][0][x];
else if(q[k].b==j)f[o][id[q[k].a][0][q[k].c]][1][x]+=f[o^1][k][0][x];
else if(q[k].c==j)f[o][id[q[k].a][q[k].b][0]][1][x]+=f[o^1][k][0][x];
else if(x<3)f[o][id[j][q[k].b][q[k].c]][0][x+1]+=f[o^1][k][0][x];
}else if(q[k].a!=j&&q[k].b!=j&&q[k].c!=j)f[o][k][0][x]+=f[o^1][k][0][x];
}
if(f[o^1][k][1][x]&&a[j]=='.'){
if(q[k].a==j||q[k].b==j||q[k].c==j)continue;
f[o][k][0][x]+=f[o^1][k][1][x];
f[o][k][1][x]+=f[o^1][k][1][x];
}
}
}
}
return printf("%lld",f[o][0][0][3]),0;
}

  

BZOJ3934 : [CQOI2015]标识设计的更多相关文章

  1. [CQOI2015]标识设计

    Luogu3170 128MB过不去 LOJ2099 256MB能卡过 BZOJ3934 512MB怎么都过的去 求在\(30*30\)的方格上放\(3\)个\(L\)的方案 , 有障碍 拓展这条路的 ...

  2. Luogu P3170 [CQOI2015]标识设计 状态压缩,轮廓线,插头DP,动态规划

    看到题目显然是插头\(dp\),但是\(n\)和\(m\)的范围似乎不是很小.我们先不考虑复杂度设一下状态试试: 一共有三个连通分量,我们按照\(1,2,3\)的顺序来表示一下.轮廓线上\(0\)代表 ...

  3. [暑假的bzoj刷水记录]

    (这篇我就不信有网站来扣) 这个暑假打算刷刷题啥的 但是写博客好累啊  堆一起算了 隔一段更新一下.  7月27号之前刷的的就不写了 , 写的累 代码不贴了,可以找我要啊.. 2017.8.27upd ...

  4. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  5. BZOJ 3931: [CQOI2015]网络吞吐量

    3931: [CQOI2015]网络吞吐量 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1555  Solved: 637[Submit][Stat ...

  6. BZOJ 3930: [CQOI2015]选数 递推

    3930: [CQOI2015]选数 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pro ...

  7. bzoj3931: [CQOI2015]网络吞吐量

    将最短路图找出来,跑maxflow即可.有注意到数据范围.然后输出的时候%dWA了三次QAQ... #include<cstdio> #include<cstring> #in ...

  8. BZOJ 3931: [CQOI2015]网络吞吐量 最大流

    3931: [CQOI2015]网络吞吐量 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

  9. BZOJ 3931: [CQOI2015]网络吞吐量( 最短路 + 最大流 )

    最短路 + 最大流 , 没什么好说的... 因为long long WA 了两次.... ------------------------------------------------------- ...

随机推荐

  1. mysql列类型

    mysql三大列类型 整型 tinyint(占据空间:1个字节 存储范围  有符号  -128-127   无符号  0-255) smallint   mediumint    int    big ...

  2. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  3. visual studio2010复制粘贴源代码到Word时乱码问题 分类: C# 2014-11-28 09:25 687人阅读 评论(0) 收藏

    问题描述: visual studio2010 拷贝源代码的时候,在windows自带的写字板和word2010上,粘贴的时候中文字符都会变成乱码. 如: "该用户已经被成功添加" ...

  4. 使用pl/sql監控PROCEDURE執行時間

    創建表 CREATE TABLE PROCESS_TIMING_LOG (   PROCESS_NAME       VARCHAR2(50 BYTE),   EXECUTION_DATE     D ...

  5. 基于PHP+Ajax实现表单验证的详解

    一,利用键盘响应,在不刷新本页面的情况下验证表单输入是否合法 用户通过onkeydown和onkeyup事件来触发响应事件.使用方法和onclick事件类似.onkeydown表示当键盘上的键被按下时 ...

  6. 25条提高Visual Studio编码和调试效率的技巧

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:工欲善其事必先利其器.就算手中已经有了利器,如果能掌握一些使用工具的技巧,让利器更加顺 ...

  7. JQuery.Ajax()的data参数类型

    假如现在有这样一个表单,是添加元素用的. <form id='addForm' action='UserAdd.action' type='post'> <label for='un ...

  8. HDU 5919 Sequence II 主席树

    Sequence II Problem Description   Mr. Frog has an integer sequence of length n, which can be denoted ...

  9. Quick-Cocos2dx 快速了解

    set_dev_envirment // */ // ]]> Cocos2dx快速了解 1. Quick-Cocos2dx 开发环境搭建 1.1. 官网: 1.2. Github: 1.3. s ...

  10. Struts2基本配置详解

    Struts2配置文件加载顺序 struts2 配置文件由核心控制器加载 StrutsPrepareAndExecuteFilter (预处理,执行过滤) init_DefaultProperties ...