/*
很容易想到f[i][j][k][l][01] 表示到ij点 两个人得分为kl 01表示这一步谁走的
因为起点不同 路径不同 所以要枚举起点..
时间复杂度 O(nmk*nmk)
空间复杂度 O(2*nmkk)
超时爆空间.....
40分
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 810
#define mod 1000000007
using namespace std;
int n,m,K,ans,a[maxn][maxn];
int f[210][210][17][17][2];
void Clear(int x,int y)
{for(int i=x;i<=n;i++)for(int j=y;j<=m;j++)for(int k=0;k<=K;k++)for(int l=0;l<=K;l++){f[i][j][k][l][0]=0;f[i][j][k][l][1]=0;}
}
int main()
{scanf("%d%d%d",&n,&m,&K);K++;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%d",&a[i][j]);for(int x=1;x<=n;x++)for(int y=1;y<=m;y++){Clear(x,y);f[x][y][a[x][y]%K][0][0]=1;for(int i=x;i<=n;i++)for(int j=y;j<=m;j++)for(int k=0;k<K;k++)for(int l=0;l<K;l++){if(i+1<=n){f[i+1][j][(k+a[i+1][j])%K][l][0]=(f[i+1][j][(k+a[i+1][j])%K][l][0]+f[i][j][k][l][1])%mod;f[i+1][j][k][(l+a[i+1][j])%K][1]=(f[i+1][j][k][(l+a[i+1][j])%K][1]+f[i][j][k][l][0])%mod;}if(j+1<=m){f[i][j+1][(k+a[i][j+1])%K][l][0]=(f[i][j+1][(k+a[i][j+1])%K][l][0]+f[i][j][k][l][1])%mod;f[i][j+1][k][(l+a[i][j+1])%K][1]=(f[i][j+1][k][(l+a[i][j+1])%K][1]+f[i][j][k][l][0])%mod;}if(k==l)ans=(ans+f[i][j][k][l][1])%mod;}}printf("%d\n",ans);return 0;
}

/*
其实刚才的状态可以降一维 把kl改为两个人的差值
但是会出现负数 考试的时候想到数组平移 但是答案就不对了....
然后打了暴力 6层循环 美美的~ 后来终于在眼泪中明白 数组平移个卵...
因为在Mod的意义下 平移之后状态就不对应了
不平移mod完之后在+K不就好了嘛
还有就是傻傻的枚举起点了..赋好初值 从1 1开始就好了吗
反正最后统计方案数 互相之间不影响
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 810
#define mod 1000000007
using namespace std;
int n,m,K,ans,a[maxn][maxn];
int f[maxn][maxn][16][2];
int main()
{scanf("%d%d%d",&n,&m,&K);K++;memset(f,0,sizeof(f));for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){scanf("%d",&a[i][j]);f[i][j][a[i][j]%K][0]=1;}for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)for(int k=0;k<K;k++){if(i+1<=n){f[i+1][j][(k+a[i+1][j])%K][0]=(f[i+1][j][(k+a[i+1][j])%K][0]+f[i][j][k][1])%mod;f[i+1][j][(k-a[i+1][j]+K)%K][1]=(f[i+1][j][(k-a[i+1][j]+K)%K][1]+f[i][j][k][0])%mod;}if(j+1<=m){f[i][j+1][(k+a[i][j+1])%K][0]=(f[i][j+1][(k+a[i][j+1])%K][0]+f[i][j][k][1])%mod;f[i][j+1][(k-a[i][j+1]+K)%K][1]=(f[i][j+1][(k-a[i][j+1]+K)%K][1]+f[i][j][k][0])%mod;}if(k==0)ans=(ans+f[i][j][k][1])%mod;}printf("%d\n",ans);return 0;
}

转载于:https://www.cnblogs.com/yanlifneg/p/5813077.html

洛谷 1373 小a和uim之大逃离相关推荐

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

    https://www.luogu.org/problem/show?pid=1373 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声 ...

  2. 洛谷1373小a和uim之大逃离

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

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

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

  4. 【题解】洛谷P1373 小a和uim之大逃离(dp 递推)

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

  5. 洛谷P1373 小a和uim之大逃离 动态规划

    题解 我们可以先简单的想一种状态,也就是dp[i][j][x][y][t]dp[i][j][x][y][t]dp[i][j][x][y][t],这是最暴力的. 当t=0t = 0t=0时,表示小a处于 ...

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

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

  7. 小a和uim之大逃离,洛谷之提高历练地,动态规划TG.lv(1)(3-2)

    正题 第二题:小a和uim之大逃离 这题有点烦,但是我们可以从k入手,大小为k的魔瓶,可以装的容量为0到k,那么相当于我们每一次mod 一下k 就行了. 我们当然也可以从小a和小uim的魔瓶差入手,我 ...

  8. 洛谷 1373 dp 小a和uim之大逃离 良心题解

    洛谷 1373 dp 这题还不算太难,,当初看的时候不是很理解题意,以为他们会选择两条不同的路径,导致整体思路混乱 传送门 其实理解题意和思路之后还是敲了不短的时间,一部分身体原因再加上中午休息不太好 ...

  9. 【洛谷P3818】小A和uim之大逃离 II

    题目背景 话说上回--还是参见 https://www.luogu.org/problem/show?pid=1373 吧 小a和uim再次来到雨林中探险.突然一阵南风吹来,一片乌云从南部天边急涌过来 ...

最新文章

  1. 在 Node.js 中用子进程操作标准输入/输出
  2. linux slocate(secure locate) 命令详解
  3. TrackID识别音乐的应用不能用了
  4. 【剑指offer-Java版】30最小的K个数
  5. java多线程yield_Java多线程yield
  6. css根据文字长度实现宽度自适应
  7. 针对集合中的某个字段对集合中的对象进行排序
  8. java httpclient 重定向_用Apache HttpClient实现URL重定向
  9. 项目建立数据库初始环境脚本文件的示例
  10. 基于matlab的人脸五官边缘检测方法,人脸边缘检测方法研究与仿真
  11. Chapter 1. Asp.Net 概述
  12. 计算机一级天文小知识,不得了,天文知识增加了! | 第20期
  13. 简单的多线程操作示例
  14. Spring开发指南0.8版(By夏昕)
  15. Free Download Manager
  16. Aras innovator: 怎样把excel文件导入到Aras数据库
  17. 一键编译安装LAMP环境
  18. gddr6速率_美光GDDR6内存可上20Gbps,带宽堪比HBM 2显存
  19. 【计算理论】计算复杂性 ( NP 完全问题 - 布尔可满足性问题 ★ | 布尔可满足性问题是 NP 完全问题证明思路 ) ★
  20. CycleGAN:Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks

热门文章

  1. Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)
  2. 多层PCB的叠层板材
  3. 使用T-SQL导入多个文件数据到SQL Server中一文的疑惑
  4. 计算机无法安装系统,为什么计算机无法重新安装系统?
  5. 【转载】dos下通过wmic命令查看硬盘和内存/CPU信息(windows自带命令查看硬件信息)
  6. 一年三篇IF大于7的牛人告诉你怎么写SCI
  7. mysql光标不见了_mysql创建光标失败
  8. python引用文件的方法_[项目实践] python文件路径引用的
  9. Java中Map的entrySet()详解 || Map.Entry的详解
  10. 视图解析jstlView支持便捷的国际化功能