【BZOJ1048】[HAOI2007]分割矩阵

题面

bzoj

洛谷

题解

\(dp[a][b][c][d][num]\)表示将矩形\((a,b,c,d)\)分成\(num\)个的最小方差,然后转移即可

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <vector>
using namespace std;
#define sqr(x) ((x) * (x))
int A, B, N, a[15][15], s[15][15];
double ave, dp[15][15][15][15][15];
int sum(int x, int y, int _x, int _y) { return s[_x][_y] - s[_x][y - 1] - s[x - 1][_y] + s[x - 1][y - 1]; }
double dfs(int x, int y, int _x, int _y, int num) {
if (dp[x][y][_x][_y][num] != 0) return dp[x][y][_x][_y][num];
else if (num == 1) return 1.0 * sqr(sum(x, y, _x, _y) - ave);
dp[x][y][_x][_y][num] = 1e9;
for (int i = y; i < _y; i++) {
for (int j = 1; j < num; j++) {
double res1 = dfs(x, y, _x, i, j) + dfs(x, i + 1, _x, _y, num - j);
double res2 = dfs(x, i + 1, _x, _y, j) + dfs(x, y, _x, i, num - j);
dp[x][y][_x][_y][num] = min(dp[x][y][_x][_y][num], min(res1, res2));
}
}
for (int i = x; i < _x; i++) {
for (int j = 1; j < num; j++) {
double res1 = dfs(x, y, i, _y, j) + dfs(i + 1, y, _x, _y, num - j);
double res2 = dfs(i + 1, y, _x, _y, j) + dfs(x, y, i, _y, num - j);
dp[x][y][_x][_y][num] = min(dp[x][y][_x][_y][num], min(res1, res2));
}
}
return dp[x][y][_x][_y][num];
}
int main () {
cin >> A >> B >> N;
for (int i = 1; i <= A; i++)
for (int j = 1; j <= B; j++) cin >> a[i][j];
for (int i = 1; i <= A; i++)
for (int j = 1; j <= B; j++)
s[i][j] = s[i][j - 1] + s[i - 1][j] - s[i - 1][j - 1] + a[i][j];
ave = 1.0 * s[A][B] / N;
printf("%0.2lf\n", sqrt(dfs(1, 1, A, B, N) / N));
return 0;
}

【BZOJ1048】 [HAOI2007]分割矩阵的更多相关文章

  1. bzoj千题计划186:bzoj1048: [HAOI2007]分割矩阵

    http://www.lydsy.com/JudgeOnline/problem.php?id=1048 #include<cmath> #include<cstdio> #i ...

  2. BZOJ1048:[HAOI2007]分割矩阵(记忆化搜索DP)

    Description 将一个a*b的数字矩阵进行如下分割:将原矩阵沿某一条直线分割成两个矩阵,再将生成的两个矩阵继续如此分割(当然也可以只分割其中的一个), 这样分割了(n-1)次后,原矩阵被分割成 ...

  3. 【记忆化搜索】bzoj1048 [HAOI2007]分割矩阵

    标准差=√(Σ(xi-xba)2/n)=Σ(xi)2+xba*n-2*xba*sum.只需最小化每个分割出来的矩阵的平方和即可. #include<cstdio> #include< ...

  4. BZOJ1048: [HAOI2007]分割矩阵

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1048 题解:搞清题意之后来个记忆化爆搜就行了. 代码: #include<cstdio& ...

  5. BZOJ 1048 [HAOI2007]分割矩阵

    1048: [HAOI2007]分割矩阵 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 623  Solved: 449[Submit][Status ...

  6. 【BZOJ1048】分割矩阵(记忆化搜索,动态规划)

    [BZOJ1048]分割矩阵(记忆化搜索,动态规划) 题面 BZOJ 洛谷 题解 一个很简单的\(dp\),写成记忆化搜索的形式的挺不错的. #include<iostream> #inc ...

  7. 洛谷P2217 [HAOI2007]分割矩阵

    P2217 [HAOI2007]分割矩阵 题目描述 将一个a*b的数字矩阵进行如下分割:将原矩阵沿某一条直线分割成两个矩阵,再将生成的两个矩阵继续如此分割(当然也可以只分割其中的一个),这样分割了(n ...

  8. [BZOJ 1048] [HAOI2007] 分割矩阵 【记忆化搜索】

    题目链接:BZOJ - 1048 题目分析 感觉这种分割矩阵之类的题目很多都是这样子的. 方差中用到的平均数是可以直接算出来的,然后记忆化搜索 Solve(x, xx, y, yy, k) 表示横坐标 ...

  9. 1048: [HAOI2007]分割矩阵 - BZOJ

    Description 将一个a*b的数字矩阵进行如下分割:将原矩阵沿某一条直线分割成两个矩阵,再将生成的两个矩阵继续如此分割(当然也可以只分割其中的一个),这样分割了(n-1)次后,原矩阵被分割成了 ...

随机推荐

  1. Oracle重启操作步骤

    有时候在服务中重启了oracle之后,数据库并不能正常访问,可以通过以下步骤: 在windows服务中启动数据库服务: 在windows命令窗口中输入命令:sqlplus /nolog 在sql> ...

  2. 最大公约数(GCD)与最小公倍数(LCM)的计算

    给出两个数a.b,求最大公约数(GCD)与最小公倍数(LCM) 一.最大公约数(GCD)    最大公约数的递归:  * 1.若a可以整除b,则最大公约数是b  * 2.如果1不成立,最大公约数便是b ...

  3. Mosquitto安装调试实录

    1. 安装 以Centos 7.x为例,先安装依赖项(笔者使用阿里云资源,部分依赖项可能未列出): yum install gcc-c++ yum install openssl-devel yum ...

  4. September 12th 2017 Week 37th Tuesday

    Failure is the fog through which we glimpse triumph. 失败是迷雾,穿过它,我们就可以瞥见光明. Sometimes the fog may be t ...

  5. 智能家居中的物联网网关的可信计算平台模块(TPM)设计

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/BlueCloudMatrix/article/details/24184461 摘要: 随着智能家居 ...

  6. 【从源代码看Android】02MessageQueue的epoll原型

    版权声明:本文为博主原创文章,欢迎转载.请注明原文链接 https://blog.csdn.net/ashqal/article/details/31772697 1 开头 上一讲讲到Looper,大 ...

  7. HtmlImageGenerator字体乱码问题解决、html2image放linux上乱码问题解决

    使用html2image-0.9.jar生成图片. 在本地window系统正常,放到服务器linux系统时候中文乱码问题.英文可以,中文乱码应该就是字体问题了. 一.首先需要在linux安装字体,si ...

  8. 机器学习中的特征缩放(feature scaling)

    参考:https://blog.csdn.net/iterate7/article/details/78881562 在运用一些机器学习算法的时候不可避免地要对数据进行特征缩放(feature sca ...

  9. C#在WinForm中重写ProgressBar控件(带%的显示)

    废话少说,直接上码: namespace csPublish { [ToolboxItem(true)] class textProgressBar : System.Windows.Forms.Pr ...

  10. Kafka设计解析(二)Kafka High Availability (上)

    转载自 技术世界,原文链接 Kafka设计解析(二)- Kafka High Availability (上) Kafka从0.8版本开始提供High Availability机制,从而提高了系统可用 ...