洛谷 1373 小a和uim之大逃离
/* 很容易想到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之大逃离相关推荐
- 洛谷1373 小a和uim之大逃离
https://www.luogu.org/problem/show?pid=1373 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声 ...
- 洛谷1373小a和uim之大逃离
题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...
- 洛谷P1373 小a和uim之大逃离
P1373 小a和uim之大逃离 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从 ...
- 【题解】洛谷P1373 小a和uim之大逃离(dp 递推)
题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...
- 洛谷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处于 ...
- 洛古 P1373 小a和uim之大逃离
P1373 小a和uim之大逃离 题目提供者lzn 标签 动态规划 洛谷原创 难度 提高+/省选- 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电 ...
- 小a和uim之大逃离,洛谷之提高历练地,动态规划TG.lv(1)(3-2)
正题 第二题:小a和uim之大逃离 这题有点烦,但是我们可以从k入手,大小为k的魔瓶,可以装的容量为0到k,那么相当于我们每一次mod 一下k 就行了. 我们当然也可以从小a和小uim的魔瓶差入手,我 ...
- 洛谷 1373 dp 小a和uim之大逃离 良心题解
洛谷 1373 dp 这题还不算太难,,当初看的时候不是很理解题意,以为他们会选择两条不同的路径,导致整体思路混乱 传送门 其实理解题意和思路之后还是敲了不短的时间,一部分身体原因再加上中午休息不太好 ...
- 【洛谷P3818】小A和uim之大逃离 II
题目背景 话说上回--还是参见 https://www.luogu.org/problem/show?pid=1373 吧 小a和uim再次来到雨林中探险.突然一阵南风吹来,一片乌云从南部天边急涌过来 ...
最新文章
- 在 Node.js 中用子进程操作标准输入/输出
- linux slocate(secure locate) 命令详解
- TrackID识别音乐的应用不能用了
- 【剑指offer-Java版】30最小的K个数
- java多线程yield_Java多线程yield
- css根据文字长度实现宽度自适应
- 针对集合中的某个字段对集合中的对象进行排序
- java httpclient 重定向_用Apache HttpClient实现URL重定向
- 项目建立数据库初始环境脚本文件的示例
- 基于matlab的人脸五官边缘检测方法,人脸边缘检测方法研究与仿真
- Chapter 1. Asp.Net 概述
- 计算机一级天文小知识,不得了,天文知识增加了! | 第20期
- 简单的多线程操作示例
- Spring开发指南0.8版(By夏昕)
- Free Download Manager
- Aras innovator: 怎样把excel文件导入到Aras数据库
- 一键编译安装LAMP环境
- gddr6速率_美光GDDR6内存可上20Gbps,带宽堪比HBM 2显存
- 【计算理论】计算复杂性 ( NP 完全问题 - 布尔可满足性问题 ★ | 布尔可满足性问题是 NP 完全问题证明思路 ) ★
- CycleGAN:Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
热门文章
- Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)
- 多层PCB的叠层板材
- 使用T-SQL导入多个文件数据到SQL Server中一文的疑惑
- 计算机无法安装系统,为什么计算机无法重新安装系统?
- 【转载】dos下通过wmic命令查看硬盘和内存/CPU信息(windows自带命令查看硬件信息)
- 一年三篇IF大于7的牛人告诉你怎么写SCI
- mysql光标不见了_mysql创建光标失败
- python引用文件的方法_[项目实践] python文件路径引用的
- Java中Map的entrySet()详解 || Map.Entry的详解
- 视图解析jstlView支持便捷的国际化功能