资源简介
划分一个由64块小正方形组成的8*8的矩形:
将原矩形分成两个矩形,在分开后的两个矩形中任选一块重复这样的划分,
这样分了(n-1)次后,连同最后剩下的矩形共有n块矩形。
原矩形上每一格有一个分值,
一块矩形的总分为其所含各格分值之和。现在需要把矩形按上述规则划分成n块矩形棋盘
,并使各矩形总分的均方差最小。
请编程对给出的矩形及n,求出O’的最小值。
代码片段和文件信息
/*
划分一个由64块小正方形组成的8*8的矩形:
将原矩形分成两个矩形,在分开后的两个矩形中任选一块重复这样的划分,
这样分了(n-1)次后,连同最后剩下的矩形共有n块矩形。
原矩形上每一格有一个分值,
一块矩形的总分为其所含各格分值之和。现在需要把矩形按上述规则划分成n块矩形棋盘
,并使各矩形总分的均方差最小。
请编程对给出的矩形及n,求出O’的最小值。
测试说明
平台会对你编写的代码进行测试:
测试输入:
3
1 1 1 1 1 1 1 3
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 0
1 1 1 1 1 1 0 3
3 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 3
预期输出:
1.633
*/
#include
#include
#include
#include
#include
using namespace std;
const int MAX = 1 << 30;
int chessboard[9][9];
int sums[9][9][9][9];
double DP[20][9][9][9][9];
int N;
int main(){
double totals = 0.0;
double avg = 0.0;
memset( chessboard 0 sizeof( chessboard ) );
memset( sums 0 sizeof( sums ) );
//fstream fin( “test.txt“ );
cin >> N;
for( int i = 1; i <= 8; ++i ){
for( int j = 1; j <= 8; ++j ){
cin >> chessboard[i][j];
sums[i][j][i][j] = chessboard[i][j];
totals += chessboard[i][j];
chessboard[i][j] += chessboard[i - 1][j] + chessboard[i][j - 1] - chessboard[i - 1][j - 1];
}
}
avg = totals / ( N * 1.0 );
for( int x1 = 1; x1 <= 8; ++x1 ){
for( int y1 = 1; y1 <= 8; ++y1 ){
for( int x2 = x1; x2 <= 8; ++x2 ){
for( int y2 = y1; y2 <= 8; ++y2 ){
sums[x1][y1][x2][y2] = chessboard[x2][y2] - chessboard[x1 - 1][y2] -
chessboard[x2][y1
- 上一篇:C++实现LZW压缩和解压
- 下一篇:C++实现图书馆管理系统
相关资源
- 汽车加油行驶问题 C++算法实现
- dp动态规划动归经典问题买书问题01背
- 动态规划—最短编辑问题—非常详细
- 动态规划法、贪心算法、回溯法、分
- 0/1背包问题蛮力、动态规划、回溯、
- 蛮力法、分治法和动态规划法设计最
- 算法分析与设计实验报告贪心法,动
- 基于动态规划的TSP问题求解源码
- 动态规划算法求解字符串比较问题c
- 最长公共子序列的动态规划算法
- 动态规划实现最佳加法表达式求最小
- c++语言写最长公共子序列问题
- 动态规划最短路径.cpp
- 营养套餐问题
- 动态规划解TSP(旅行商)问题C++源码
- C++动态规划求解TSP问题备忘录方法
- 最优二分搜索树动态规划
- 背包问题C语言实现, 动态规划
- c语言实现的动态规划求最短路径长度
- 动态规划算法实现多段图最短路径问
- 最长公共子序列,C语言动态规划
- 最大长方体问题--动态规划C++
- c c++ 01背包问题动态规划解决
- 用动态规划法求解流水线调度问题
- 动态规划灰度压缩bmp
- QtC++用动态规划,djistra,Astar,Qlear
- 资源分配c++代码
- 动态规划实现立体匹配
- 用动态规划思想求解最长公共子串
- 旅游背包问题
评论
共有 条评论