POJ1191棋盘分割
题目:http://poj.org/problem?id=1191
1.分析式子!!!
发现xba是定值,σ的大小仅和∑ xi^2 有关。故dp条件是平方和最小。
2.分出一块就像割掉一条,只需枚举从四个方向割+割多宽。
(赋初值之小优美)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int n,a,sum[][],sm[],ss,d[][][][][];
bool vis[][][][][];
double xba,ans;
int summ(int x1,int y1,int x2,int y2)
{
int s=sum[x2][y2]-sum[x1-][y2]-sum[x2][y1-]+sum[x1-][y1-];
return s*s;
}
int dfs(int x1,int y1,int x2,int y2,int k)
{
if(vis[x1][y1][x2][y2][k])return d[x1][y1][x2][y2][k];
vis[x1][y1][x2][y2][k]=;
if(k==)return d[x1][y1][x2][y2][k]=summ(x1,y1,x2,y2);
for(int i=x1;i<x2;i++)
d[x1][y1][x2][y2][k]=min(d[x1][y1][x2][y2][k],
min(dfs(i+,y1,x2,y2,k-)+summ(x1,y1,i,y2),dfs(x1,y1,i,y2,k-)+summ(i+,y1,x2,y2)));
for(int i=y1;i<y2;i++)
d[x1][y1][x2][y2][k]=min(d[x1][y1][x2][y2][k],
min(dfs(x1,i+,x2,y2,k-)+summ(x1,y1,x2,i),dfs(x1,y1,x2,i,k-)+summ(x1,i+,x2,y2)));
return d[x1][y1][x2][y2][k];
}
int main()
{
scanf("%d",&n);
memset(d,,sizeof d);
for(int i=;i<=;i++)
{
ss=;
for(int j=;j<=;j++)
{
scanf("%d",&a);
sm[j]+=a;
ss+=sm[j];
sum[i][j]=ss;
}
}
dfs(,,,,n);
xba=sum[][]/(n*1.0);
ans=d[][][][][n]+xba*xba*n-*xba*sum[][];
ans=sqrt(ans/n);
printf("%.3lf",ans);
return ;
}
POJ1191棋盘分割的更多相关文章
- poj1191 棋盘分割【区间DP】【记忆化搜索】
棋盘分割 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 16263 Accepted: 5812 Description ...
- poj1191棋盘分割——区间DP
题目:http://poj.org/problem?id=1191 分析题意,可知每次要沿棋盘中的一条线把一块一分为二,取其中一块继续分割: σ最小经分析可知即为每块的xi和的平方最小: 故用区间DP ...
- POJ1191 棋盘分割(DP)
化简一下那个方差得到:$$\sqrt\frac{(\Sigma_{i=1}^nx_i)-n\bar x^2}{n}$$ 除了$\Sigma_{i=1}^nx_i$这部分未知,其余已知,而那部分显然越大 ...
- poj1191 棋盘分割。 dp
连接:http://poj.org/problem?id=1191 思路:额,其实就是直接搞记录一下就可以了. #include <stdio.h> #include <string ...
- POJ1191 棋盘分割
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: Accepted: 题目链接: http://poj.org/problem?id ...
- 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 ...
- NOI 193棋盘分割.cpp
193:棋盘分割 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分 ...
- HDU 2517 / POJ 1191 棋盘分割 区间DP / 记忆化搜索
题目链接: 黑书 P116 HDU 2157 棋盘分割 POJ 1191 棋盘分割 分析: 枚举所有可能的切割方法. 但如果用递归的方法要加上记忆搜索, 不能会超时... 代码: #include& ...
随机推荐
- 常见MIME类型例表
常见MIME类型例表: 序号 内容类型 文件扩展名 描述 1 application/msword doc Microsoft Word 2 application/octet-stream bin ...
- 基于PU-Learning的恶意URL检测——半监督学习的思路来进行正例和无标记样本学习
PU learning问题描述 给定一个正例文档集合P和一个无标注文档集U(混合文档集),在无标注文档集中同时含有正例文档和反例文档.通过使用P和U建立一个分类器能够辨别U或测试集中的正例文档 [即想 ...
- 无名管道跟dup,dup的使用
参考资料: http://www.tldp.org/LDP/lpg/node11.html http://blog.csdn.net/yeyuangen/article/details/6852682 ...
- ASE加解密算法详细介绍
AEC扫盲主要增对CBC模式做详细讲解: https://blog.csdn.net/qq_28205153/article/details/55798628 AEC其他几种模式详细介绍 https: ...
- weblogic下更改jsp不生效的解决办法
1.删除user_projects\domains\base_domain(我自己的域名)\servers\AdminServer目录下的所有文件夹 一下为转载from:http://blog.itp ...
- EhLib的行Checkbox
方法1 http://www.cnblogs.com/jupt/p/4291902.html 在Indicator中添加动态Checkbox,无需绑定数据源,支持全选 - Ehlib学习(二) 先 ...
- 无线Mesh网络技术基础与应用
无线Mesh网络主要包含三类节点,构成了Mesh的基本服务集. 1.与有线网络相连的节点(GateWay节点),其主要负责实现无线Mesh网络和有线网络的数据交换. 2.可以进行Mesh组网并拥有Ro ...
- 玩转X-CTR100 l STM32F4 l UCOS-III移植
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 概述 前后台系统 简单的小型系统设计一般是基于前后台 ...
- 深入理解Linux网络技术内幕——内核基础架构和组件初始化
引导期间的内核选项 Linux允许用户把内核配置选项传给引导记录,再有引导记录传给内核,以便对内核进行调整. start_kernel中调用两次parse_args,用于引导期间配置用 ...
- mysql sum(if())用法
原表:id fenlei time1 分类1 201303162 分类2 201303163 分类3 201303174 ...