小奇的矩阵 DP
来源:互联网 发布:吉林新快3遗漏数据 编辑:程序博客网 时间:2024/04/27 18:58
小奇的矩阵
【题目背景】
小奇总是在数学课上思考奇怪的问题。
【问题描述】
给定一个n*m的矩阵,矩阵中的每个元素aij为正整数。
接下来规定
1.合法的路径初始从矩阵左上角出发,每次只能向右或向下走,终点为右下角。
2.路径经过的n+m-1个格子中的元素为A1,A2…A(n+m-1),Aavg为Ai的平均数,路径的V值为(n+m-1)*∑(Ai-Aavg) ^2
(1<=i<=n+m-1)
求V值最小的合法路径,输出V值即可,有多组测试数据。
输入格式
第一行包含一个正整数T,表示数据组数。
对于每组数据:
第一行包含两个正整数n和m,表示矩阵的行数和列数。
接下来n行,每行m个正整数aij,描述这个矩阵。
输出格式
对于每次询问,输出一行一个整数表示要求的结果
样例输入
1
2 2
1 2
3 4
样例输出
14
数据规模
对于30%的数据 n<=10,m<=10
有另外40%的数据 n<=15 m<=15,矩阵中的元素不大于5
对于100%的数据 T<=5,n<=30,m<=30,矩阵中的元素不大于30
看到方差的形式也不能打出GG。
首先容易看出来是一个DP,因为有明显的阶段性,而且很容易想到有两维应该用来记录位置。但是应该记录什么呢?是否应该加维数呢?
留给我们的突破口就只有答案的这个式子了,所以其实本题比较好想。对于题面里的形式显然是难以处理的,考虑对式子变形。
不妨设
所以现在我们只需要求出对一个给定的
所以定义状态
要得到最终答案,枚举
#include<stdio.h>#include<cstring>#include<algorithm>using namespace std;int N,M,Map[35][35],f[35][35][1805];long long Ans,Tmp;int main(){ int i,j,k,T; scanf("%d",&T); while(T--) { scanf("%d%d",&N,&M); for(i=1;i<=N;i++) for(j=1;j<=M;j++) scanf("%d",&Map[i][j]); for(i=0;i<=N;i++) for(j=0;j<=M;j++) for(k=0;k<=1770;k++)f[i][j][k]=1e8; f[1][1][Map[1][1]]=Map[1][1]*Map[1][1]; for(i=1;i<=N;i++) for(j=1;j<=M;j++) { if(i==1&&j==1)continue; for(k=Map[i][j];k<=1770;k++) f[i][j][k]=min(f[i-1][j][k-Map[i][j]],f[i][j-1][k-Map[i][j]])+Map[i][j]*Map[i][j]; } Ans=1e9; for(k=0;k<=1770;k++) { Tmp=1ll*(N+M-1)*f[N][M][k]-k*k; if(Ans>Tmp)Ans=Tmp; } printf("%lld\n",Ans); }}
- 小奇的矩阵 DP
- 坐标DP 小奇的矩阵(matrix)
- 【bzoj4547】【小奇的集合】【矩阵乘法】
- 树DP 小奇的仓库(warehouse)
- 【BZOJ4547】【HDU5171】小奇的集合,暴力+矩阵乘法
- [BZOJ]4547: Hdu5171 小奇的集合 矩阵乘法
- 【jozj5228】【GDOI2018模拟7.14】【小奇的集合】【矩阵乘法】
- bzoj 4547: Hdu5171 小奇的集合 矩阵乘法
- BZOJ4550 小奇的博弈 【Nimk游戏 + dp + 组合数】
- bzoj 4547: Hdu5171 小奇的集合 (矩阵乘法+递推)
- 【bzoj 4547】【Hdu 5171】小奇的集合(找规律+矩阵快速幂)
- 【BZOJ4548】小奇的糖果
- BZOJ4548 小奇的糖果
- 小奇的数列 Seq
- [bzoj4550] 小奇的博弈
- 【BZOJ4547】小奇的集合
- [JZOJ5229] 小奇的糖果
- 【BZOJ4548】小奇的糖果
- java多线程
- Vijos P1061 迎春舞会之三人组舞
- 2015ACM/ICPC亚洲区长春站【solved:5 / 13】
- C++信息学奥赛一本通题库1031
- 【51nod】1199 Money out of Thin Air 线段树
- 小奇的矩阵 DP
- VS Code 扩展插件 迁移 扩展插件安装路径
- 常用命令:cp/mv & 文档查看cat/more/less/head/tail
- metasploit 更新
- 微信公众号教程—记录个人公众号运营(待更新)
- Android中自定义Toast显示在其他界面上
- shell 猜数的小程序
- 算法学习系列1.1
- web Service的服务端和客户端