LRJ黑书上的例题。

化简均方差公式:

均值的平方一定,所以只需让矩形的总分的平方和最小即可。

定义:dp[k][x1][y1][x2][y2],以(x1,y1)为左上角坐标,(x2,y2)为右下角坐标的矩形,切割K次以后得到的k+1块举行的总分平方和的最小值

转移方程:(分成横割和竖割)

dp[k][x1][y1][x2][y2]=min{ dp[k-1][x1][y1][a][y2]+sum[a+1][y1][x2][y2], dp[k-1][a+1][y1][x2][y2]+sum[x1][y1][a][y2], (横着 x1≤a<x2)

dp[k-1][x1][y1][x2][b]+sum[x1][b+1][x2][y2], dp[k-1][x1][b+1][x2][y2]+sum[x1][y1][x2][b] (竖着 y1≤b<y2) }

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#define Mod 1000000007
using namespace std;
#define N 2100 double dp[][][][][],sum[][][][],mp[][]; double SUM2(int i,int j,int a,int b)
{
if(sum[i][j][a][b] >= )
return sum[i][j][a][b];
double res = ;
int k,h;
for(k=i;k<=a;k++)
for(h=j;h<=b;h++)
res += mp[k][h];
sum[i][j][a][b] = res*res;
return sum[i][j][a][b];
} double solve(int k,int i,int j,int a,int b)
{
if(k == )
return SUM2(i,j,a,b);
if(dp[k][i][j][a][b] >= )
return dp[k][i][j][a][b];
double Min1 = Mod;
double Min2 = Mod;
for(int s=i;s<a;s++)
Min1 = min(Min1,min(solve(k-,i,j,s,b)+SUM2(s+,j,a,b),solve(k-,s+,j,a,b)+SUM2(i,j,s,b)));
for(int h=j;h<b;h++)
Min2 = min(Min2,min(solve(k-,i,j,a,h)+SUM2(i,h+,a,b),solve(k-,i,h+,a,b)+SUM2(i,j,a,h)));
dp[k][i][j][a][b] = min(Min1,Min2);
return dp[k][i][j][a][b];
} int main()
{
double SUM,AX;
int i,j,n;
SUM = ;
scanf("%d",&n);
for(i=;i<=;i++)
{
for(j=;j<=;j++)
{
scanf("%lf",&mp[i][j]);
SUM += mp[i][j];
}
}
AX = SUM/(double)n;
AX *= AX;
memset(sum,-,sizeof(sum));
memset(dp,-,sizeof(dp));
printf("%.3lf\n",sqrt(solve(n,,,,)/(double)n-AX));
return ;
}

UESTC 881 神秘绑架案 --二维DP的更多相关文章

  1. UESTC_神秘绑架案 CDOJ 881

    神秘绑架案 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Sta ...

  2. 洛谷p1732 活蹦乱跳的香穗子 二维DP

    今天不BB了,直接帖原题吧  地址>>https://www.luogu.org/problem/show?pid=1732<< 题目描述 香穗子在田野上调蘑菇!她跳啊跳,发现 ...

  3. HDU - 2159 FATE(二维dp之01背包问题)

    题目: ​ 思路: 二维dp,完全背包,状态转移方程dp[i][z] = max(dp[i][z], dp[i-1][z-a[j]]+b[j]),dp[i][z]表示在杀i个怪,消耗z个容忍度的情况下 ...

  4. 传纸条 NOIP2008 洛谷1006 二维dp

    二维dp 扯淡 一道比较基本的入门难度的二维dp,类似于那道方格取数,不过走过一次的点下次不能再走(看提交记录里面好像走过一次的加一次a[i][j]的也AC了,,),我记得当年那道方格取数死活听不懂, ...

  5. 洛谷P1048 采药 二维dp化一维

    题目描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个 ...

  6. 关于二维DP————站上巨人的肩膀

    意匠惨淡经营中ing, 语不惊人死不休........ 前几天学了DP,做了个简单的整理,记录了关于DP的一些概念之类的,今天记录一下刚学的一个类型 ----关于二维DP 那建立二维数组主要是干嘛用的 ...

  7. BZOJ 2748: [HAOI2012]音量调节【二维dp,枚举】

    2748: [HAOI2012]音量调节 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 2010  Solved: 1260[Submit][Statu ...

  8. To the Max 二维dp(一维的变形)

    Description Given a two-dimensional array of positive and negative integers, a sub-rectangle is any ...

  9. POJ 1661 Help Jimmy(二维DP)

    题目链接:http://poj.org/problem?id=1661 题目大意: 如图包括多个长度和高度各不相同的平台.地面是最低的平台,高度为零,长度无限. Jimmy老鼠在时刻0从高于所有平台的 ...

随机推荐

  1. CSS层次选择器温故-2

    1.层次选择器 通过HTML的DOM元素间的层次关系获取元素,层次关系包括后代.父子.相邻兄弟和通用兄弟,通过其中某类关系可以方便快捷地选定需要的元素 2.语法 3.兼容性 IE7以及以上版本 4.后 ...

  2. 关于谷歌浏览器不能播放背景音乐的问题(与IE的不同之处)

    第一篇博文 忍受寂寞,抵制诱惑,持之以恒. 开发时,以下代码在IE浏览器上能顺利播放背景音乐,可在谷歌浏览器上却没有动静. <html> <body> <bgsound ...

  3. 详解HTML5中rel属性的prefetch预加载功能使用

    在HTML5中,有个很有用但常被忽略的特性,就是预先加载(prefetch),它的原理是: 利用浏览器的空闲时间去先下载用户指定需要的内容,然后缓存起来,这样用户下次加载时,就直接从缓存中取出来,效率 ...

  4. java中判断字符串是否为数字的方法

    一: //1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); ...

  5. 学写了一段LINQ

    要写一段代码读入一个用空格分隔的几列的文件,程序中有多处类似的文件,所以想着有没有什么好点的办法. 井名       X坐标       Y坐标         深度 测试井1  634600    ...

  6. Android 开源库和项目

    1.手势解锁 史上最完美的 手势密码解锁 2.数据库操作 Android数据库框架itePal https://github.com/LitePalFramework/LitePal 轻量级数据库:a ...

  7. Mac下利用(xcode)安装git

    Mac下利用(xcode)安装git 一.AppStore 最安全途径:搜索下载Xcode,(需要AppleID). 其他:直接百度Xcode下载. 二.Xcode 打开Xcode-->Pref ...

  8. Xcode注释插件 VVDocumenter 升级Xcode6.x 失效的解决办法

    失效的原因其实是因为在插件的uuid列表中缺少自己的uuid,解决办法如下; 1,打开终端 输入命令: defaults read /Applications/Xcode.app/Contents/I ...

  9. iOS 视频选择压缩

    //原理,还是调用UIImagePickerController控制器,设置Type为视频 #import "ViewController.h" #import <AVFou ...

  10. JDK8 API文档(下载)

    DK API文档 java SE 8 API文档: http://www.oracle.com/technetwork/java/javase/documentation/jdk8-doc-downl ...