【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. 判断js对象类型

    javascript中检测对象的类型的运算符有:typeof.constructor.instanceof.prototype. 1.typeof typeof是一个一元运算符,返回结果是一个说明运算 ...

  2. RHEL7系统管理之网络管理

    1. RHEL7的网络介绍 在RHEL7中, NetworkManager 提供的默认联网服务是一个动态网络控制和配置守护进程, 支持ifcfg类型的配置文件. NetworkManager 可用于连 ...

  3. Python学习---JSON补充内容[中文编码 + dumps解析]

    JSON补充内容[微信解决中文乱码,接上] import json # 英文显示 dic = {"hello": "world"} str = json.dum ...

  4. Linux 系统的日志目录

    连接时间的日志 连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,通过who查看 who /var/log/wtmp [连接时间日志] who /var/log/ ...

  5. __iter__的有无

    迭代器和生成器 1.迭代器 我们之前⼀直在⽤可迭代对象进⾏迭代操作. 那么到底什么是可迭代对象.⾸先我们先回顾⼀下⽬前我们所熟知的可迭代对象有哪些: str, list, tuple, dict, s ...

  6. PHP中抽象方法、抽象类和接口的用法

    在类中,没有方法体的方法就是抽象方法. abstract 可见性 function 方法名称(参数1,.....);      // 如果没有显示地指定可见性,则默认为public 如: public ...

  7. November 9th 2016 Week 46th Wednesday

    Love is the poetry of the scenes. 爱是感官之诗. Recently I always feel lonely, I badly hope that I can fin ...

  8. print(n) 和 while/for 并列的时候, print()只会打印出最后一个结果

    n=0while n <10: n+=1print(n) # print(n)放在while的外面和while并列的时候, 只会打印出最后一个结果 n=0while n <10: n+=1 ...

  9. 激活office软件

    1. 打开校园软件正版化激活网址 http://nic.seu.edu.cn/2015/0113/c12333a115290/page.htm 2. 下载KMS激活脚本 3. 登陆easyconnec ...

  10. [T-ARA][Bye Bye]

    歌词来源:http://music.163.com/#/song?id=22704472 사랑하는 그대 Bye Bye, Bye Bye, Bye Bye, [sa-lang-ha-neun geu ...