#dp#洛谷 3473 [POI2008] UCI-The Great Escape JZOJ 4019 Path
题目
\(n*m\)的地图,计算从\((n,1)\)到第\(x\)列的第\(y\)行的路径条数\(\bmod k\) ,
走过的点不能再走,转弯只能向右转。转弯完之后必须往前走一格
分析
可以发现,走的过程类似于一个矩形,这可以列一个\(dp\)方程


关于滚动数组采用枚举行数加列数再枚举行数,接着枚举左下角得到右上角的坐标
然后在走的时候要判断这一横竖是否有障碍
代码
#include <cstdio>
#define rr register
using namespace std;
int n,m,mod,zy,zx,rw[101][101],cl[101][101],dp[2][4][101][101][101];
inline void Mo(int &A,int x,int y){A=x+y>=mod?x+y-mod:x+y;}
inline bool cor(int x,int y){return x==zx&&y==zy;}
signed main() {
scanf("%d%d%d%d%d",&n,&m,&mod,&zy,&zx);
for (rr int i=1;i<=n;++i)
for (rr int j=1;j<=m;++j){
rr char c=getchar();
while (c!='+'&&c!='*') c=getchar();
rw[i][j]=rw[i][j-1]+(c=='*'),
cl[i][j]=cl[i-1][j]+(c=='*');
}
for (rr int S=2;S<=n+m;++S)
for (rr int i=1;i<S;++i){
rr int j=S-i;
for (rr int lx=1;lx<=zx&&lx<=n-i+1;++lx)
for (rr int ly=1;ly<=zy&&ly<=m-j+1;++ly){
rr int rx=lx+i-1,ry=ly+j-1;
if (rx<zx||ry<zy) continue;
Mo(dp[S&1][0][lx][ly][rx],dp[(S&1)^1][0][lx][ly][rx],(rw[lx][ry]==rw[lx][ly-1])*(dp[(S&1)^1][1][lx+1][ly][rx]+cor(lx,ry)));
Mo(dp[S&1][1][lx][ly][rx],dp[(S&1)^1][1][lx][ly][rx-1],(cl[rx][ry]==cl[lx-1][ry])*(dp[(S&1)^1][2][lx][ly][rx]+cor(rx,ry)));
Mo(dp[S&1][2][lx][ly][rx],dp[(S&1)^1][2][lx][ly+1][rx],(rw[rx][ry]==rw[rx][ly-1])*(dp[(S&1)^1][3][lx][ly][rx-1]+cor(rx,ly)));
Mo(dp[S&1][3][lx][ly][rx],dp[(S&1)^1][3][lx+1][ly][rx],(cl[rx][ly]==cl[lx-1][ly])*(dp[(S&1)^1][0][lx][ly+1][rx]+cor(lx,ly)));
}
}
return !printf("%d",dp[(n+m)&1][3][1][1][n]);
}
#dp#洛谷 3473 [POI2008] UCI-The Great Escape JZOJ 4019 Path的更多相关文章
- 树形DP 洛谷P2014 选课
洛谷P2014 选课 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习.现在有N门功课,每门 ...
- BZOJ1123或洛谷3469 [POI2008]BLO-Blockade
BZOJ原题链接 洛谷原题链接 若第\(i\)个点不是割点,那么只有这个点单独形成一个连通块,其它点依旧连通,则答案为\(2\times (n-1)\). 若第\(i\)个点是割点,那么去掉这个点相关 ...
- 洛谷 P3478 [POI2008]STA-Station
题目描述 The first stage of train system reform (that has been described in the problem Railways of the ...
- 洛谷P3478 [POI2008]STA-Station
P3478 [POI2008]STA-Station 题目描述 The first stage of train system reform (that has been described in t ...
- 区间DP 洛谷P2858牛奶零食
题目链接 题意:你有n个货物从1-n依次排列,每天可以从两侧选一个出来卖,卖的价格是当天的天数乘该货物的初始价格,问这批货物卖完的最大价格 输入:第一行n,之后是n个货物的初始价值 这道题不能用贪心做 ...
- P1279 字串距离 dp 洛谷
题目描述 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为”abcbcd”,则字符串“abcb□cd”,“□a□bcbcd□”和“abcb□cd□”都是X ...
- dp 洛谷P1977 出租车拼车 线性dp
题目背景 话说小 x 有一次去参加比赛,虽然学校离比赛地点不太远,但小 x 还是想坐 出租车去.大学城的出租车总是比较另类,有“拼车”一说,也就是说,你一个人 坐车去,还是一堆人一起,总共需要支付的钱 ...
- 经典DP 洛谷p1880 石子合并
https://www.luogu.org/problemnew/show/P1880 题目 题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新 ...
- [DP]洛谷P1115最大子段和
题目来源 https://www.luogu.org/problemnew/show/P1115 题目描述 给出一段序列,选出其中连续且非空的一段使得这段和最大. 输入输出格式 输入格式: 第一行是一 ...
- 洛谷 P3477 [POI2008]PER-Permutation 解题报告
P3477 [POI2008]PER-Permutation 题目描述 Multiset is a mathematical object similar to a set, but each mem ...
随机推荐
- 使用 Hugging Face 微调 Gemma 模型
我们最近宣布了,来自 Google Deepmind 开放权重的语言模型 Gemma现已通过 Hugging Face 面向更广泛的开源社区开放.该模型提供了两个规模的版本:20 亿和 70 亿参数, ...
- 进程之间共享数据Manager,线程相关使用Thread,用类定义线程,守护线程setDaemon,线程锁Lock,线程信号量Semaphore---day32
1.Manager # ### Manager (list列表,dict字典)进程之间的共享数据(列表或字典等) from multiprocessing import Process,Manager ...
- Go中响应式编程库github.com/ReactiveX/RxGo详细介绍
最近的项目用到了 RxGo ,因为之前从没有接触过,特意去学了学,特此记录下.文章很多内容是复制了参考资料或者官方文档.如果涉及侵权,请联系删除,谢谢. 1.RxGo简介 1.1 基础介绍 RxGo是 ...
- 谈谈在incubator-dolphinscheduler 中为啥不能及时看到python任务输出的print日志
一.incubator-dolphinscheduler 中如何获取shell类型的节点或者python类型的节点任务的日志 1.在org.apache.dolphinscheduler.server ...
- curator-framework 使用采坑记之org.apache.zookeeper.ClientCnxn - Opening socket connection to server..........Will not attempt to authenticate using SASL (unknown error)报错解决
一.curator-framework 简介 curator-framework 是对zookeeper做的分二次分布式封装处理,目前代码也是apache 开源社区维护,如下所示. github地址 ...
- Jmeter Jsonpath 语法你了解多少?
- 13 Codeforces Round 886 (Div. 4)G. The Morning Star(简单容斥)
G. The Morning Star 思路:用map记录x,y,以及y-x.y+x 从前往后统计一遍答案即可 公式\(ans+=cnt[x]+cnt[y]-2 * cnt[x,y]+cnt[y+x] ...
- pod探针的三种类型及三种检测方式
Pod探针是Kubernetes中的一种机制,用于检测Pod中的容器是否正常运行.它主要有三种类型:存活探针(LivenessProbe).就绪探针(ReadinessProbe)和启动探针(Star ...
- pfx文件导出pem和私钥,更换网站域名证书
openssl 路径: C:\Program Files\OpenSSL-Win64\bin -- 导出pem证书openssl pkcs12 -in C:\BackUp\Lightning\cert ...
- hibernate之createQuery与createSQLQuery
信息: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.miracle.dm.doc.catalog.m ...