P1373 小 a 和 uim 之大逃离

news/发布时间2024/5/6 10:24:43

这是一道好的dp


题目链接:P1373 小 a 和 uim 之大逃离

题意

小a和uim两个人是绑在一起走的
也就是说小a负责吸收第奇数次的魔液,而uim负责吸收偶数次的魔液
那么最终要求的是所有由uim结束吸收后两人魔瓶中魔液相等的方法


根据这个题意我们可以很好的列出状态转移方程

f(i,j,c,0/1)表示的是当两人走到i,j时差值为c的方案数(0代表现在为小a取,1代表为uim取)

那么我们来考虑一下状态转移方程该如何设计:

f(i,j,c,0)+=f(i-1,j,(c-val[i,j]+k)%k,1)

f(i,j,c,0)+=f(i,j-1,(c-val[i,j]+k)%k,1)

f(i,j,c,1)+=f(i-1,j,(c-val[i,j]+k)%k,0)

f(i,j,c,1)+=f(i,j-1,(c-val[i,j]+k)%k,0)


代码如下:

#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define dwn(i,a,b) for(int i=(a);i>=(b);i--)
const int N=801,mod=1e9+7;int n,m,k;
int ans=0;
int val[N][N];
int f[N][N][20][2];int main()
{cin>>n>>m>>k;k++;rep(i,1,n)rep(j,1,m){cin>>val[i][j];f[i][j][val[i][j]%k][0]=1;}rep(i,1,n){rep(j,1,m){rep(c,0,k){f[i][j][c][0]=(f[i][j][c][0]+f[i-1][j][(c-val[i][j]+k)%k][1])%mod;f[i][j][c][0]=(f[i][j][c][0]+f[i][j-1][(c-val[i][j]+k)%k][1])%mod;f[i][j][c][1]=(f[i][j][c][1]+f[i-1][j][(c+val[i][j])%k][0])%mod;f[i][j][c][1]=(f[i][j][c][1]+f[i][j-1][(c+val[i][j])%k][0])%mod;}}}rep(i,1,n)rep(j,1,m){ans=(ans+f[i][j][0][1])%mod;}cout<<ans;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/13005145.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

实验一 二手交易平台APP原型设计

一、实验题目:原型设计 二、实验目的:掌握产品原型设计方法和相应工具使用。 三、实验要求 1.对比分析墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点(至少3条)。 墨刀的适用领域及优缺点 适用领域 墨刀是一款在线原型设计与协同工具,借助墨刀,产品经理、…

一周涨 15k Star 的开源项目「GitHub 热点速览」

https://www.cnblogs.com/xueweihan/p/18137334你训练大语言模型(LLM)用的什么框架?有没有想过不用框架训练 GPT-2? GitHub 上就有这么一位大神(Andrej Karpathy),他仅用大约 1k 行的 C 代码就完成了 GPT-2 模型的训练,代码纯手撸、不依赖任何机器学习框架,作者这么做…

大报文之道:优化策略与实践

写在前面 在做正常的需求开发时,当我们提供了一个接口或是调用别人接口时,我们需要考虑接口除了正常的逻辑处理外,还需要考虑接口能接收报文的上限,性能,响应时间等一系列非功能性需求。如果不注意这些问题,就可能在某一天的某个时刻收到一系列系统告警,严重者甚至导致系…

FlinkSQL 实时同步 MySQL

本文主要介绍了使用 FlinkSQL 实现 MySQL 数据的实时同步。准备工作MySQL 数据库(version: 5.7.25),注意,MySQL 数据库版本必须大于 5.6,否则不支持。开启 MySQL 的 log-bin: [mysqld] # Binary Logging. log-bin=mysql-bin server-id=1Flink (version : 1.15.4)添加 fli…

FlinkSQL 实时数据同步

准备工作MySQL 数据库(version: 5.7.25),注意,MySQL 数据库版本必须大于 5.6,否则不支持。开启 MySQL 的 log-bin: [mysqld] # Binary Logging. log-bin=mysql-bin server-id=1Flink (version : 1.15.4)添加 flink-connector-jdbc-1.15.4.jar 和 flink-sql-connector-mys…

关于虚拟机内存和JVM内存设置的思考

关于虚拟机内存和JVM内存设置的思考背景 最近有同事总问JVM的设置问题. 之前总结过不少. 但是感觉没法讲对方说服 当然了, 自己能力有限, 只能自说自话. 现在这个就是留存一个底稿. 希望能人能帮忙解释关于内存和CPU的观点 CPU的能力有上限. 一般情况下不建议让CPU处于高峰作业…