poj 1191 矩形块的划分
思路:黑书的例题
#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 矩形块的划分的更多相关文章
- HDU 2517 / POJ 1191 棋盘分割 区间DP / 记忆化搜索
题目链接: 黑书 P116 HDU 2157 棋盘分割 POJ 1191 棋盘分割 分析: 枚举所有可能的切割方法. 但如果用递归的方法要加上记忆搜索, 不能会超时... 代码: #include& ...
- POJ 1191 棋盘分割 【DFS记忆化搜索经典】
题目传送门:http://poj.org/problem?id=1191 棋盘分割 Time Limit: 1000MS Memory Limit: 10000K Total Submission ...
- [USACO] 铺放矩形块 题解
题目大意: 给定4个矩形块,找出一个最小的封闭矩形将这4个矩形块放入,但不得相互重叠.所谓最小矩形指该矩形面积最小. 思路: 枚举矩形的安放顺序,再按照题目所给的图判断即可,主要要想到枚举. 代码: ...
- 【USACO 1.4.1】铺放矩形块
[描述] 给定4个矩形块,找出一个最小的封闭矩形将这4个矩形块放入,但不得相互重叠.所谓最小矩形指该矩形面积最小. 所有4个矩形块的边都与封闭矩形的边相平行,图1示出了铺放 ...
- poj 1191 棋盘分割(dp + 记忆化搜索)
题目:http://poj.org/problem?id=1191 黑书116页的例题 将方差公式化简之后就是 每一块和的平方 相加/n , 减去平均值的平方. 可以看出来 方差只与 每一块的和的平方 ...
- OpenJudge/Poj 1191 棋盘分割
1.链接地址: http://bailian.openjudge.cn/practice/1191/ http://poj.org/problem?id=1191 2.题目: 总时间限制: 1000m ...
- poj - 1191 - 棋盘切割(dp)
题意:将一个8*8的棋盘(每一个单元正方形有个分值)沿直线(竖或横)割掉一块,留下一块,对留下的这块继续这样操作,总共进行n - 1次,得到n块(1 < n < 15)矩形,每一个矩形的分 ...
- POJ 1191 棋盘分割
棋盘分割 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 11213 Accepted: 3951 Description 将一个 ...
- poj 1191 棋盘分割 动态规划
棋盘分割 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 11457 Accepted: 4032 Description ...
随机推荐
- Https如何保证安全
Https加密安全. SSL加密. Https和http的区别?Https如何做到安全? HTTPS协议是由SSL+HTTP协议构建的可进行加密传输.身份认证的网络协议. http是普通的超文本文 ...
- JOIN 相关内容
1.left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 2.right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 3.inner join ...
- 使用Vagrant在Windows下部署开发环境
做Web开发少不了要在本地搭建好开发环境,虽然说目前各种脚本都有对应的Windows版,甚至是一键安装包,但很多时候和Windows环境的相性并不是那么好,各麻烦的问题是实际部署的环境通常是Linux ...
- HTML5 Web Speech API 结合Ext实现浏览器语音识别以及输入
简介 Web Speech API是HTML5技术中的一个提供原生语音识别技术的API,Google Chrome在25版之后开始支持Web Speech API,Google也提供了一个 ...
- HDU 5590 ZYB's Biology 水题
ZYB's Biology Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid ...
- 【JavaScript】javascript常用的东西
DOM编程.AJAX编程.异步编程(nodejs会涉及的相对多一点,事件.ajax) 函数.函数表达式.回调函数是基础. JavaScript的函数是一个核心. 回调函数有点类似于Android中的回 ...
- GridView编辑删除操作
第一种:使用DataSource数据源中自带的编辑删除方法,这样的不经常使用,在这里就不加说明了. 另外一种:使用GridView的三种事件:GridView1_RowEditing(编辑).Grid ...
- Java生成 Word文档的并打印解决方案
户要求用程序生成标准的word文档,要能打印,而且不能变形,以前用过很多解决方案,都在客户严格要求下牺牲的无比惨烈. POI读word文档还行,写文档实在不敢恭维,复杂的样式很难控制不提,想象一下一个 ...
- plupload上传插件在SpringMVC中的整合
前言:近期在给学院的站点做一个加入附件的功能,首先到了某某邮箱看了一下.简单有用.可是是flash做的,无法拷贝.就仅仅好上网找插件了.经过筛选.最终找到plupload这款插件(其实有的编辑器自带加 ...
- C语言中的函数
C语言中的函数 目录 概述——对函数的理解 C语言中函数的定义和声明 函数允许的参数类型 函数允许的返回类型 递归 概述 由于有些代码段在编写程序的时候经常会用到,此时我们为了减少代码文件的长度和增加 ...