POJ 1191 棋盘分割 (记忆化搜索)
来源:互联网 发布:网络电视转换数字电视 编辑:程序博客网 时间:2024/05/16 17:20
题意:
思路:先要对公式化简,我的数学好差,花了好长时间化简。然后用记忆化搜索,dp[d][x1][y1][x2][y2] 存储 把大小为(x1,y1)(x2,y2)的矩阵分成d份的最小值。。
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>#include <stack>using namespace std;const int INF = 0x7ffffff;int dp[16][9][9][9][9];int map[9][9];int n,ans,sum;int dfs(int dep,int x1,int y1,int x2,int y2){ if(dp[dep][x1][y1][x2][y2]>=0) return dp[dep][x1][y1][x2][y2]; int ans=INF; for(int i=x1;i<x2;i++) { int t=dfs(dep-1,i+1,y1,x2,y2)+dp[1][x1][y1][i][y2]; ans = min(t,ans); t = dfs(dep-1,x1,y1,i,y2)+dp[1][i+1][y1][x2][y2]; ans = min(t,ans); } for(int i=y1;i<y2;i++) { int t=dfs(dep-1,x1,i+1,x2,y2)+dp[1][x1][y1][x2][i]; ans = min(t,ans); t = dfs(dep-1,x1,y1,x2,i)+dp[1][x1][i+1][x2][y2]; ans = min(t,ans); } dp[dep][x1][y1][x2][y2] = ans; return ans;}int oor(int x1,int y1,int x2,int y2){ int ans=0; for(int i=x1;i<=x2;i++) for(int j=y1;j<=y2;j++) ans+=map[i][j]; return ans;}void init(){ for(int i=0;i<8;i++) for(int k=i;k<8;k++) for(int j=0;j<8;j++) for(int l=j;l<8;l++) { dp[1][i][j][k][l]=oor(i,j,k,l); dp[1][i][j][k][l]=dp[1][i][j][k][l]*dp[1][i][j][k][l]; }}int main(){ freopen("in.txt","r",stdin); scanf("%d",&n); memset(dp,-1,sizeof(dp)); for(int i=0;i<8;i++) for(int j=0;j<8;j++) scanf("%d",&map[i][j]),sum+=map[i][j]; init(); ans=dfs(n,0,0,7,7); printf("%.3lf\n",sqrt((ans-1.0*sum/n*sum)/n)); return 0;}
- POJ--1191[棋盘分割] 记忆化搜索
- poj 1191 棋盘分割 记忆化搜索
- POJ 1191 棋盘分割 (记忆化搜索)
- POJ--1191[棋盘分割] 经典的记忆化搜索
- 【DP】 POJ 1191 棋盘分割 记忆化搜索
- poj 1191 棋盘分割 (压缩dp+记忆化搜索)
- poj 1191 棋盘分割(记忆化搜索/动态规划)
- POJ 1191-棋盘分割(记忆化搜索)
- poj 1191棋盘分割(递归dp, 记忆化搜索)
- POJ 1191 棋盘分割 (记忆化搜索)
- 棋盘分割--记忆化搜索
- POJ 1191 棋盘分割(记忆化搜)
- HDU 2517 / POJ 1191 棋盘分割 区间DP / 记忆化搜索
- 【DP+记忆化搜索】PKU-1191-棋盘分割
- poj1191 棋盘分割(记忆化搜索)
- [DP+记忆化搜索]poj1191 棋盘分割
- POJ 1191 棋盘分割 简单记忆化dfs
- poj 1191 棋盘分割(记忆化dp+递归)
- 第二次实验规划--考虑表情变化的动态特性和局部性
- 2815:城堡问题 百炼 求连通子图个数
- 如何创建一个CSS3 Ajax加载图标没有图像
- Redundant Paths poj&hoj 割边 tarjan
- 计算机经典书籍电子书合集(适合计算机学生学习以及程序员笔试、面试) .
- POJ 1191 棋盘分割 (记忆化搜索)
- HTML5新攻略:如何使用自定义属性
- android 计算器开发
- 命令模式(Command)----行为笔记
- 大端小端
- 我的SQL 测验结果
- Linux内核PHY中断调试
- java基础知识点积累
- java 播放音频