int dp[10][10][19690]; //传说中的三进制
int bit[]={1, 3, 9, 27, 81, 243, 729, 2187, 6561, 19683};
char ok[13][13];
int st[1000][10], go[19900], p[900][10], slack[10];
int k, num, tot;
int main()
{
int n, m;
for(int i=0, j; i<=bit[9]; i++)
{
k = num = 0, j = i, ++tot;
for (; j>0; j/=3)
{
int h = j % 3;
st[tot][k++] = h;
if (h == 1) ++num;
if (h == 2) --num;
if (num < 0) break;
}
if (num != 0) --tot;
else
{
go[st[tot][9] = i] = tot;
for (k = num = 0; k <= 8; ++k)
if (st[tot][k] == 2)
p[tot][k] = slack[num], p[tot][slack[num--]] = k;
else if (st[tot][k] == 1) slack[++num] = k;
}
}
while(scanf("%d%d", &n, &m), n)
{
memset(dp, 0, sizeof(dp));
dp[1][0][1] = 1;
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= m; ++j) scanf("%c", &ok[i][j]);
scanf("\n");
}
if (n == 1)
{
int i;
for (i = 1; i <= m; ++i)
if (ok[i][1] == '#') break;
printf("%d\n", i > m);
continue;
}
for(int i=1; i<=n; i++)
for(int j=0; j<=m; j++)
for(int h=1; h<=tot; h++)
if( st[h][9] < bit[m+1] )
{
if(dp[i][j][h]==0) continue;
int x = st[h][j];
int y = st[h][j+1];
int k = st[h][9];
if(i==n && j==m) break;
if (j == m)
{
if (st[h][m] == 0) dp[i+1][0][ go[k*3] ] += dp[i][j][h];
continue;
}
if (ok[i][j+1] == '#')
{
if (x == 0 && y == 0)
dp[i][j+1][h] += dp[i][j][h];
continue;
}
if (y == 0 && y == 0)
dp[i][j+1][ go[ k+bit[j]+2*bit[j+1] ] ] += dp[i][j][h];
else if(x==0 || y==0)
{
dp[i][j+1][h] += dp[i][j][h];
if(x==0)
dp[i][j+1][ go[ k-y*bit[j+1]+y*bit[j] ] ] += dp[i][j][h];
else
dp[i][j+1][ go[ k-x*bit[j]+x*bit[j+1] ] ] += dp[i][j][h];
}
else if (x ==2 && y==1)
dp[i][j+1][ go[ k - x*bit[j] - y*bit[j+1] ] ] += dp[i][j][h];
else if (x == 1 && y==1)
dp[i][j+1][ go[ k - x*bit[j] - y*bit[j+1] - bit[p[h][j+1] ] ] ] += dp[i][j][h];
else if (x == 2 && y==2)
dp[i][j+1][ go[ k - x*bit[j] - y*bit[j+1] + bit[ p[h][j] ] ] ] += dp[i][j][h];
}
printf("%d\n", dp[n][m][ go[ 1 + 2 * bit[m-1] ] ]);
}
return 0;
}
相关推荐
Python可视化技术选型实战:从渲染原理到六大生产场景
Python可视化不是库的罗列,而是面向具体工程约束的技术决策过程。理解底层渲染引擎(如Agg光栅化 vs WebGL GPU加速)、语法抽象层级(命令式绘图 vs 声明式统计绘图)与交互架构(服务端状态托管 vs 客户端实时渲染),是突破性能瓶颈与交付卡点的关键。这些原理直接决定静态出版图表的印刷精度、探索性分析的数据保真度、仪表盘的并发承载力、地理可视化的瓦片加载效率、3D科学计算的内存可控性,以及超大规模数据的秒级响应能力。本文聚焦真实项目中的六类高发场景,以Matplotlib PGF后端、Seab
POJ 1739
楼教主男人八题之一。。。 题目大意: 求从左下角经过所有非障碍点一次到达右下角的方案数 这里不是求回路,但是我们可以考虑,在最下面一行再增加一行,那么就可以当做求此时左下角到右下角的回路总数,那么就转化成了陈丹琦论文的URAL1519的 方法了 但是最后一行添加的格子必须是最后一条直线跑的,也就是除了左下角和右下角中间的点只能有水平方向上的插头 1 #incl...
ANTM股票可视化:Plotly交互+Mplfinance专业K线图实战
股票K线图是金融数据分析的基础可视化形式,其核心在于准确表达价格波动节律与市场情绪变化。原理上需兼顾专业渲染(如红涨绿跌配色、布林带/MA20等指标对齐)与用户交互(悬停查价、缩放聚焦、事件标注)。技术价值体现在将原始OHLCV数据转化为可解释、可操作的决策支持界面,尤其适用于医疗健康等政策敏感型行业。典型应用场景包括财务BP周报、行业研究员趋势归因、CFA学习者实操训练等。本文以ANTM股票为案例,深度融合Plotly交互可视化与Mplfinance专业K线图能力,提供零门槛复现路径。
poj 1739 Tony's Tour 插头dp
第一道插头dp,还是非常艰难的,做法的话cdq论文中已经讲得很清楚了,用的是最小表示法,但是这个题目因为障碍的存在导致细节处理上面更加麻烦。#include #include #include using namespace std; const int maxn=9,maxm=3e3+9;; char a[maxn][maxn]; bool first[9][9]; int n,m; i
BSD盲区检测系统性能要求及试验方法
盲区监测系统BSD通过安装在车辆后方的两颗毫米波雷达实时监测驾驶员视野盲区,当发现视野盲区内出现其它道路使用者时,通过左右后视镜上的警示灯向驾驶员发出报警。
雷达截面积建模仿真(RCS)
在目标侧,其形状、材料、尺寸(相对于雷达波长)和相对于雷达观察方向的方向等特征都会影响雷达看到的RCS。严格的数学处理超出了讨论的范围,但入射波和目标之间的相互作用可以定性描述。对于给定的散射方向,可以积分求和物体表面电流的振幅相位,当电流同相时,会出现较大的回波幅度。随着目标方向和雷达视角随时间变化,电流振幅和相位会发生变化,形成看似随机的峰值和零点的散射模式,出现“相长”和“相消”干涉。除了雷达到目标的距离外,雷达截面(RCS)是RRE(雷达距离方程)中唯一与目标相关的参数,因此不在雷达设计者的。
【BZOJ1060】【codevs1435】时态同步,我可以叫它树形递推吗
生命就像一个雪球,重要的是找到湿雪和一道长坡。
深入浅出SSD:固态存储核心技术、原理与实战(文末赠书)
作为经典畅销书的升级版,本书在第1版的基础上新增了大量新知识(如闪存、UFS、测试、文件系统等),并改写或删减了许多过时或不适用的内容,总修改量超过60%。本书由SSD技术社区SSDFans的核心团队成员联合业界、高校SSD方面的专家共同完成,相对于第1版,内容更全面、更新,也更有深度。本书从产品、技术和应用3个维度展开,全面、详细讲解了SSD的发展历史、产品形态、工作原理、整体架构,以及各个功能模块的原理和使用,从SSD的前端接口协议到FTL算法,再到后端的闪存和纠错,以及测试,本书都有涉及。
动态规划之插头DP入门
基于联通性的状态压缩动态规划是一类很典型的状态压缩动态规划问题,因为其压缩的本质并不像是普通的状态压缩动态规划那样用0或者1来表示未使用、使用两种状态,而是使用数字来表示类似插头的状态,因此,它又被称作插头DP。 插头DP本质上是一类状态压缩DP,因此,依然避免不了其指数级别的算法复杂度,即便如此,它依然要比普通的搜索算法快很多。 【例】Postal Vans(USACO training
Android TV远程调试全攻略:从开发者模式开启到ADB连接(附常见问题排查)
本文提供了一份详尽的Android TV远程调试实战指南,涵盖从开启开发者模式、配置网络ADB连接到高效调试与深度排错的完整流程。文章重点解析了通过Wi-Fi进行远程调试的核心步骤,并针对常见的连接失败、授权问题等提供了系统性的解决方案,旨在帮助开发者为Android TV应用开发构建稳定高效的调试环境。
一人公司 CEO × Accio Work:最大能效实战指南
作为一人公司 CEO,你需要同时扮演市场、销售、运营、财务、产品等多个角色。Accio Work 本质上就是你的。
POJ 1739 Tony's Tour
题目链接:http://poj.org/problem?id=1739 题意:求从左下角走到右下角,每个非障碍格子只走一次的方案数。 思路:求简单路径的数量,这个简单路径起点和终点固定,其次要把所有的非障碍格子都访问到。所以分为起点、终点、障碍格子和一般格子,一般格子有两个插头,且不能形成回路,即不能合并已经连通的插头。 #include #include #in
图像增强算法:基于Retinex的图像增强算法
该算法对图像的亮度和颜色进行分离处理,然后通过调整它们的比例来提高图像的质量。滤波后的图像将保留颜色信息,并减少图像中的噪声。接下来,Retinex算法使用一个高通滤波器对原始图像进行滤波处理,以增强图像中的亮度信息。通过使用Retinex增强算法,我们可以有效地提高图像的质量,增强图像中的细节和颜色信息。最后,Retinex算法通过将颜色恢复和亮度调整后的图像进行比例调整,以获得最终的增强图像。Retinex算法是一种常用的图像增强算法,它通过对图像的亮度和颜色进行调整,以提高图像的视觉质量。
pandas多维聚合实战:银行级生产环境优化指南
多维聚合是数据分析的核心能力,指在多个分组维度(如区域、时间、类别)上同时计算多种统计指标(均值、中位数、滚动均值、同比等)。其底层原理涉及一次分组多路并行计算、时间窗口对齐、索引结构优化与内存管理。技术价值在于显著降低I/O开销、避免中间结果爆炸、保障审计可追溯性,并支撑高并发BI看板与实时风控场景。典型应用包括银行信贷分析、支付机构欺诈特征工程、零售经营热力图生成等。本文聚焦pandas在千万至十亿级生产数据中的工业级用法,覆盖agg字典映射、rolling('7D')时间感知窗口、unstack扁平化
2万字长文:海豚调度器(DolphinScheduler)面试题深入了解
DAG图(有向无环图)是海豚调度器中表示工作流任务依赖关系的一种方式。在DolphinScheduler中,每个任务是一个节点,任务之间的依赖关系通过有向边连接这些节点来表示。无环:保证了工作流的执行顺序是确定的,避免了无限循环的问题。有向:箭头指示了任务的执行方向,即上一个任务的输出可以作为下一个任务的输入。依赖表示:通过图形化界面,用户可以通过拖拽连接线来定义任务之间的先后顺序和依赖关系。并行处理:DAG图可以表示出任务的并行关系,允许多个任务在没有直接依赖关系的情况下同时执行。条件分支。
[ 人力资源面试篇 ] HR 面试题分析详解大集合,看完直怼面试官(二)
那么在这个系列的文章中,我们聊到 HR 面谈什么?并且总结了五十个常见的人力资源面试题,在这里分享给大家。
plotly.py 实战:用 DataShader 与 FigureWidget Change Callbacks 在缩放/重绘时动态渲染百万级大数据集
本篇技术指南以 [change-callbacks-datashader.md](https://link.gitcode.com/i/d5bdd2ffa94d1ad8f9e3f5ba0c8178df) 为骨架,演示如何借助 **DataShader** 在 plotly 的交互式 `FigureWidget` 中展示海量散点数据,并通过 **change callbacks(属性变更回调)**
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
TensorFlow批量图像加载:构建生产级数据流水线
在深度学习工程实践中,图像数据加载并非简单读取文件,而是涉及内存管理、I/O优化、容错处理与可复现性的系统性问题。其核心原理基于tf.data的图式计算范式,通过惰性路径生成、图内解码、函数式增强与声明式错误处理,实现高吞吐、低延迟、可审计的数据流。该技术显著提升GPU利用率、支持百万级样本扩展,并天然适配分布式训练与云存储(如GCS/S3)。典型应用场景包括计算机视觉模型训练启动、医疗影像分析、工业质检等需稳定数据供给的AI落地环节。本文聚焦TensorFlow批量图像加载与训练启动这一关键工程节点,深入
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
插头dp入门题五道(caioj 1489~1493)
插头dp劣质题解
Data-Structures-and-Algorithm-Analysis-in-Java.pdf
作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...
插头dp ——从入门到跳楼
课前预习 Q:什么题目使用插头dp? A:关键词:超小数据范围,网格图,连通性。 Q:什么是“插头”? A:一个格子通过某些方向与另一个格子相连,这些连接的位置叫做“插头”。形象地理解,网格图上每一个格子是一块拼图,那么两块拼图的接口就叫做“插头”。 Q:什么是“轮廓线”? A:我们在网格图中选择一个关键格子(图中黄色格子)(i,j)(i,j)(i,j),轮廓线就是蓝色的线。 ...
【插头DP】 POJ 1739 Tony's Tour
通道:http://poj.org/problem?id=1739 题意:左下角走到右下角路径数,单回路。做法就是我们新添2行后寻找回路就可以啦 。 代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 5 using na...
poj 1739 Tony's Tour(插头dp)
题意: 给出地图,起点是(N,1),终点是(N,M),有障碍物,求有多少种方案能从起点到终点。 题解: 非环形的插头dp,特判一些起点和终点的dp,还要注意一点,从上往下dp的时候因为起点是左下角,所以不存在不建立新插头的方案!不然未走的空格子就被计算成了路径,反而增加累赘的方案数。 #include #include #include #include #include #inc
poj 1739(男人八题之插头DP)
Tony's Tour Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1680 Accepted: 751 Description A square township has been divided up into n*m(n rows and m column
POJ-2411-Mondriaan's Dream-轮廓线dp(插头dp)
题意:在n*m的方格里铺1*2的骨牌,有多少种可能,首先可以排除一些特殊情况,n*m是奇数,就是0 n或m是1就是1(已经排除n*m的情况)。然后就和我之前写的hdu1992的插头dp一样 #include #include #include #include #include using namespace std; long long dp[15][4444]; int m; void d
poj1739 Tony‘s Tour
http://poj.org/problem?id=1739 普通通路问题,左下角走到右下角,那么只要在上面加两层壳,一层全不可走,一层全可走,那么总左下角走到右下角是一条路径且他和从外面这层壳的唯一路径走形成了一条回路,问题就转换成了直接求回路,就等同于模板题了 https://blog.youkuaiyun.com/liufengwei1/article/details/108114948 #include<cstdio> using namespace std; typedef long lo
[BZOJ1435] [ZJOI2009] 多米诺骨牌 - 插头DP/状压DP,容斥原理
题意简述:求n*m的带障碍棋盘中,摆放1*2或2*1的多米诺骨牌且相邻行和相邻列均存在骨牌跨立的方案数。n,m 本蒟蒻的辣鸡题解 表示校内OJ有毒……n=m=15就完美地因为常数大了一倍而T掉了。。 所以有组特判不要在意……这里不应该写插头的应该写个状压,状态就能咔嚓掉一半。。 时间复杂度是大玄学 = = 真难调 弱智+2 #include"bits/stdc++.h" #define
377



被折叠的 条评论
为什么被折叠?



