思路:黑书的例题

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdio>
#define Maxn 20
#define mul(a) ((a)*(a))
using namespace std;
int dp[][][][][];
int s[][],val[][];
int S(int x1,int y1,int x2,int y2)
{
return mul(s[x2][y2]-s[x2][y1-]-s[x1-][y2]+s[x1-][y1-]);
}
int main()
{
int n,m,i,j;
double avg;
while(scanf("%d",&n)!=EOF)
{
memset(dp,,sizeof(dp));
memset(s,,sizeof(s));
for(i=;i<=;i++)
for(j=;j<=;j++){
scanf("%d",&val[i][j]);
s[i][j]=s[i-][j]+s[i][j-]-s[i-][j-]+val[i][j];
}
int x1,y1,x2,y2;
for(x1=;x1<=;x1++)
for(y1=;y1<=;y1++)
for(x2=x1;x2<=;x2++)
for(y2=y1;y2<=;y2++){
dp[][x1][y1][x2][y2]=S(x1,y1,x2,y2);
}
int a,b;
for(i=;i<=n-;i++)
for(x1=;x1>=;x1--)
for(y1=;y1>=;y1--)
for(x2=x1;x2<=;x2++)
for(y2=y1;y2<=;y2++){
int temp;
for(a=x1;a<x2;a++){
temp=min(dp[i-][x1][y1][a][y2]+S(a+,y1,x2,y2),dp[i-][a+][y1][x2][y2]+S(x1,y1,a,y2));
dp[i][x1][y1][x2][y2]=min(temp,dp[i][x1][y1][x2][y2]);
}
for(b=y1;b<y2;b++){
temp=min(dp[i-][x1][y1][x2][b]+S(x1,b+,x2,y2),dp[i-][x1][b+][x2][y2]+S(x1,y1,x2,b));
dp[i][x1][y1][x2][y2]=min(dp[i][x1][y1][x2][y2],temp);
}
}
double ans;
avg=s[][]*1.0/(n*1.0);
ans=(double)dp[n-][][][][];
ans=ans/(n*1.0);
ans-=avg*avg;
printf("%.3lf\n",sqrt(ans));
}
return ;
}

poj 1191 矩形块的划分的更多相关文章

  1. HDU 2517 / POJ 1191 棋盘分割 区间DP / 记忆化搜索

    题目链接: 黑书 P116 HDU 2157 棋盘分割 POJ 1191 棋盘分割 分析:  枚举所有可能的切割方法. 但如果用递归的方法要加上记忆搜索, 不能会超时... 代码: #include& ...

  2. POJ 1191 棋盘分割 【DFS记忆化搜索经典】

    题目传送门:http://poj.org/problem?id=1191 棋盘分割 Time Limit: 1000MS   Memory Limit: 10000K Total Submission ...

  3. [USACO] 铺放矩形块 题解

    题目大意: 给定4个矩形块,找出一个最小的封闭矩形将这4个矩形块放入,但不得相互重叠.所谓最小矩形指该矩形面积最小. 思路: 枚举矩形的安放顺序,再按照题目所给的图判断即可,主要要想到枚举. 代码: ...

  4. 【USACO 1.4.1】铺放矩形块

    [描述] 给定4个矩形块,找出一个最小的封闭矩形将这4个矩形块放入,但不得相互重叠.所谓最小矩形指该矩形面积最小.               所有4个矩形块的边都与封闭矩形的边相平行,图1示出了铺放 ...

  5. poj 1191 棋盘分割(dp + 记忆化搜索)

    题目:http://poj.org/problem?id=1191 黑书116页的例题 将方差公式化简之后就是 每一块和的平方 相加/n , 减去平均值的平方. 可以看出来 方差只与 每一块的和的平方 ...

  6. OpenJudge/Poj 1191 棋盘分割

    1.链接地址: http://bailian.openjudge.cn/practice/1191/ http://poj.org/problem?id=1191 2.题目: 总时间限制: 1000m ...

  7. poj - 1191 - 棋盘切割(dp)

    题意:将一个8*8的棋盘(每一个单元正方形有个分值)沿直线(竖或横)割掉一块,留下一块,对留下的这块继续这样操作,总共进行n - 1次,得到n块(1 < n < 15)矩形,每一个矩形的分 ...

  8. POJ 1191 棋盘分割

    棋盘分割 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 11213 Accepted: 3951 Description 将一个 ...

  9. poj 1191 棋盘分割 动态规划

    棋盘分割 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11457   Accepted: 4032 Description ...

随机推荐

  1. android 动画属性(一)之Animation

    Animation 在android 程序当中很多时候要用到动画效果,而动画效果主要是Animation来实现的,API给出的解释: 其中包含4种动画效果 AlphaAnimation 渐变透明度 R ...

  2. Chrome developer tool:本人钟爱的 console、Network 功能简谈

    在最开始时,本人调试查看网页,一直用的是 firefox 的 firebug 插件,并没有使用 chrome 的 developer tool .只不过,在日常生活使用过程中,一直使用的是 chrom ...

  3. js 中使用工厂方法和构造器方法

    1 直接创建对象 <!DOCTYPE html> <html> <head lang="en"> <meta charset=" ...

  4. github命令

    git push origin master //把本地源码库push到Github上 git pull origin master //从Github上pull到本地源码库

  5. Hanganalyze 使用

    It is  important to find the that the reason hangs the database. How can we do, is a headache thing. ...

  6. TExternalThread TThread -- Delphi -- Cannot terminate an externally created thread ?

    Cannot terminate an externally created thread ? The VCL has a new TExternalThread class which derive ...

  7. IAR Build from the command line 环境变量设置

    http://supp.iar.com/Support/?Note=47884 Technical Note 47884 Build from the command line The alterna ...

  8. 2016 icpc-camp 之旅(一)

    啦啦啦,终于前往icpccamp啦! 嗯,该死的飞机居然晚点了! 诶,晚点居然还会发赔偿金! 飞机上没什么好说的,和萌神一起看了5集龙与虎,然后就到了. 讲道理,海南航空感觉一般. 我的座位前面有个平 ...

  9. 【JavaScript】一些注意点

    1.var与没有var的区别 没 2.全局变量和局部变量的速度 3.函数内部的var和外部的var的区别 4.var m =new Array();与var m = [];区别

  10. iOS开发——数据持久化Swift篇&(一)NSUserDefault

    NSUserDefault //******************** 5.1 NSUserDefault和对象归档 func useNSUserDefault() { //通过单利来创建一个NSU ...