题目大意:
  一个n*m的格子,每个格子上都有一个数。
  你可以向下或者向右走,从(1,1)走到(n,m),问方差*(n+m-1)最小的路径是哪个?

思路:
  方差*(n+m-1)就相当于给格子里每个数乘上(n+m-1)再求方差。
  由于数据范围较小,我们可以直接枚举每个平均数,再求一条方差最小的路径。
  不用担心平均数和所走的路径不对应的情况。
  因为就算这次的平均数和路径不对应,我们还是可以再下一次枚举到正确的平均数,而用正确的平均数算的方差显然是更小的。

 #include<cstdio>
#include<cctype>
#include<algorithm>
inline int getint() {
register char ch;
while(!isdigit(ch=getchar()));
register int x=ch^'';
while(isdigit(ch=getchar())) x=(((x<<)+x)<<)+(ch^'');
return x;
}
const int inf=0x7fffffff;
const int N=,M=;
int a[N][M],f[N][M];
int n,m;
inline int sqr(const int &x) {
return x*x;
}
inline void dp(const int &avg) {
std::fill(&f[][],&f[n][m+],inf);
f[][]=sqr(a[][]*(n+m-)-avg);
for(register int i=;i<=n;i++) {
for(register int j=;j<=m;j++) {
f[i+][j]=std::min(f[i+][j],f[i][j]+sqr(a[i+][j]*(n+m-)-avg));
f[i][j+]=std::min(f[i][j+],f[i][j]+sqr(a[i][j+]*(n+m-)-avg));
}
}
}
int main() {
const int T=getint();
for(register int i=;i<=T;i++) {
printf("Case #%d: ",i);
n=getint(),m=getint();
for(register int i=;i<=n;i++) {
for(register int j=;j<=m;j++) {
a[i][j]=getint();
}
}
int ans=inf;
for(register int i=;i<=;i++) {
dp(i);
ans=std::min(ans,f[n][m]/(n+m-));
}
printf("%d\n",ans);
}
return ;
}

最新文章

  1. SQL IF ELSE
  2. CSS小三角制作
  3. 各种数据库分页sql
  4. TCP/IP包格式详解
  5. Fibonacci Again
  6. CentOS 6.4安装AMH面板
  7. vb.net写的odbc连接dsn数据源和ole链接oracle的小例子
  8. Scala应用函数
  9. uva 10271 Chopsticks(dp)
  10. MingQQ v1.0高仿版开源了,使用WebQQ协议实现了QQ客户端基本的聊天功能...
  11. jquery validate 动态增加删除验证规则
  12. java 安装教程
  13. H5新特性-视频,音频-Flash-canvas绘图
  14. SQL语句的行列转换
  15. 数组中的stdClass Object如何访问
  16. SpringCloud系列三:SpringSecurity 安全访问(配置安全验证、服务消费端处理、无状态 Session 配置、定义公共安全配置程序类)
  17. How to Add Trust Sites into IE before IE10 through Group Policy
  18. 4、Tomcat启用HTTPS协议配置
  19. 【Unity】3.2 利用预设(Prefab)制作可复用的组件
  20. 杭电oj2001-C语言

热门文章

  1. Spring整合Quartz分布式调度
  2. POJ 3734 Blocks (矩阵快速幂)
  3. C - A New Function (整除分块 + 玄学优化)
  4. Solaris 系统命令使用说明
  5. Web攻防系列教程之 Cookie注入攻防实战
  6. struts的标签
  7. NASA: Seeing Jupiter(注视木星)
  8. 统计oracle表中字段的个数
  9. Linux下用到数据库sqlite3
  10. Fedora8 U盘安装