[题目链接]

模拟赛的时候的一道题

因为老师不小心把数据发下来了……我考试打表的

考完之后Orz xzjds

然后开始打正解

题意

大概就是两个人,走矩阵,两个人各加上走上的矩阵的数值,要求最终两个人和相同的方案数有多少

分析

很明显是一个动态规划题

f[i][j][k][a]表示走到(i,j)的时候,值为k,a==1/0 表示第一个人活着第二个人 的时候的可能存在的方案数

因为要求的是全部方案数,并且是任意点开始,任意点结束的,所以需要把全部的加起来

(方程式调了很久 最后才发现给的k为了方便处理+1比较好 在xzjds的思路下做出来的)

代码

#include<bits/stdc++.h>
#define mod 1000000007
#define ll long long
using namespace std;
inline int read() {
int f = , x = ; char ch;
do { ch = getchar(); if (ch == '-')f = -; } while (ch<'' || ch>'');
do { x = x * + ch - ''; ch = getchar(); } while (ch >= ''&&ch <= '');
return f * x;
}
int a[][];
int f[][][][];
int main()
{
int n=read(),m=read(),kk=read();
kk++;
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
a[i][j]=read()%mod;
f[i][j][a[i][j]][]=;
}
}
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
for(int k=;k<=kk-;k++)
{
f[i][j+][(k+a[i][j+])%kk][]=(f[i][j+][(k+a[i][j+])%kk][]+f[i][j][k][])%mod;
f[i+][j][(k+a[i+][j])%kk][]=(f[i+][j][(k+a[i+][j])%kk][]+f[i][j][k][])%mod;
f[i][j+][(k-a[i][j+]+kk)%kk][]=(f[i][j+][(k-a[i][j+]+kk)%kk][]+f[i][j][k][])%mod;
f[i+][j][(k-a[i+][j]+kk)%kk][]=(f[i+][j][(k-a[i+][j]+kk)%kk][]+f[i][j][k][])%mod;
}
}
}
int ans=;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
ans=(ans+f[i][j][][])%mod;
printf("%d",ans);
return ;
}

[P1373]小a和uim之大逃离 (DP)的更多相关文章

  1. 洛谷P1373 小a和uim之大逃离 dp

    正解:dp 解题报告: 传送门! 同样是看到列表发的题解就想着跟着做下dp的题目趴 然后发现还挺难的,,,反正我只大概想到怎么转移但是初始化什么的都不会TT 所以还是大概说下QAQ 首先可以想到设f[ ...

  2. 洛古 P1373 小a和uim之大逃离

    P1373 小a和uim之大逃离 题目提供者lzn 标签 动态规划 洛谷原创 难度 提高+/省选- 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电 ...

  3. 洛谷 P1373 小a和uim之大逃离

    2016-05-30 12:31:59 题目链接: P1373 小a和uim之大逃离 题目大意: 一个N*M的带权矩阵,以任意起点开始向右或者向下走,使得奇数步所得权值和与偶数步所得权值和关于K的余数 ...

  4. 洛谷P1373 小a和uim之大逃离

    P1373 小a和uim之大逃离 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从 ...

  5. 【题解】 P1373 小a和uim之大逃离

    题解 P1373 小a和uim之大逃离 传送门 一道dp好题 乍看此题,感觉要这样设计: \(dp(x)(y)(mod_{a})(mod_{uim})(0/1)\) , 但是我上午考试就MLE了,赶紧 ...

  6. 【题解】P1373 小a和uim之大逃离

    [题解]P1373 小a和uim之大逃离 考虑到可能会MLE,考虑状态压缩一下 由于只要得到他们的差就行了,所以直接少记录一维就好了 \(dp(i,j,r,1/0)\)表示在\(i,j\)点,当前ui ...

  7. luogu- P1373 小a和uim之大逃离 DP 四维,其中一维记录差值

    P1373 小a和uim之大逃离: https://www.luogu.org/problemnew/show/P1373 题意: 在一个矩阵中,小A和小B轮流取数,小A可以从任意点先取,小B后取,最 ...

  8. 洛谷P1373 小a和uim之大逃离[背包DP]

    题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...

  9. 洛谷 P1373 小a和uim之大逃离 Label:dp 不会

    题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...

随机推荐

  1. Python作业之分页显示内容

    #coding:utf8 user_list =[] for i in range(1,302): tmp = "{'user':'alex-%s,'email':'alex%s@email ...

  2. WPF 下两种图片合成或加水印的方式(转载)

    来源:http://www.cnblogs.com/lxblog/ 最近项目中应用多次应用了图片合成,为了今后方便特此记下. 在WPF下有两种图片合成的方式,一种还是用原来C#提供的GDI+方式,命名 ...

  3. [转] 合理使用npm version与npm dist-tag详解

    第一步:发布第一个稳定版本 npm publish//1.0.0 第二步:修改文件继续发布第二个版本 git add -A && git commit -m "c" ...

  4. webstorm我用到的快捷键【不断更新】

    alt+insert:新建一个文件或其他 ctrl+shift+l:代码格式化 [可能会和qq的锁屏键冲突] ctrl+shift+r:批量查找替换 多点编辑:按住alt键选择多列,就可以编辑多行了 ...

  5. Multi label 多标签分类问题(Pytorch,TensorFlow,Caffe)

    适用场景:一个输入对应多个label,或输入类别间不互斥 调用函数: 1. Pytorch使用torch.nn.BCEloss 2. Tensorflow使用tf.losses.sigmoid_cro ...

  6. Java 中 static 和 volatile 关键字的区别?

    static指的是类的静态成员,实例间共享 volatile跟Java的内存模型有关,线程执行时会将变量从主内存加载到线程工作内存,建立一个副本,在某个时刻写回.valatile指的每次都读取主内存的 ...

  7. 【bzoj3717】[PA2014]Pakowanie 状压dp

    题解: 自己在这一类问题上想到的总是3^n的枚举法 首先背包从大到小排序 f[i]表示搞出为i的状态至少要用几个背包,g[i]表示最大剩余容量 这样就可以2^n*n 因为这么做利用了状态之间的先后顺序 ...

  8. alpha冲刺4/10

    目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:冲刺4 团队部分 后敬甲 过去两天完成了哪些任务 文字描述 主页部分图标的替换 -拍照按钮的设计和测试 GitHub代码 ...

  9. flink的集群的HA高可用

    对于一个企业级的应用,稳定性是首要要考虑的问题,然后才是性能,因此 HA 机制是必不可少的: 和 Hadoop 一代一样,从架构中我们可以很明显的发现 JobManager 有明显的单点问题(SPOF ...

  10. Docker 启动tomcat

    docker run -d --name jinrong_beijingbank -p 8081:8081 -v /application/docker_hub/java/pypaltform2018 ...