poj棋盘分割(记忆化)
http://poj.org/problem?id=1191
黑书上P116 想了挺久 没想出来 想推出一公式来着 退不出来。。
想偏了 正解:递归
#include <iostream>
#include<cstdio>
#include<cstring>
#include<stdlib.h>
#include<algorithm>
#include<cmath>
using namespace std;
#define INF 0xfffffff
#define LL long long
int dp[][][][][];
int aa[][],n;
int divide(int k,int a,int b,int c,int d)
{
int i,j,minz = INF,g;
if(dp[k][a][b][c][d])
return dp[k][a][b][c][d];
if(k==n)
{
int s = ;
for(i = a; i <= c ; i++)
for(j = b ; j <= d ; j++)
s+=aa[i][j];
dp[k][a][b][c][d] = s*s;
return s*s;
}
for(i = a+ ; i <= c ; i++)
{
int s = ;
for(g = i ; g <= c ; g++)
for(j = b ; j <= d ; j++)
s+=aa[g][j];
minz = min(minz,s*s+divide(k+,a,b,i-,d));
s = ;
for(g = a ; g <= i- ; g++)
for(j = b ; j <= d ; j++)
s+=aa[g][j];
minz = min(minz,s*s+divide(k+,i,b,c,d));
}
for(i = b+ ; i <= d ; i++)
{
int s = ;
for(g = a ; g <= c ; g++)
for(j = i ; j <= d ; j++)
s+=aa[g][j];
minz = min(minz,s*s+divide(k+,a,b,c,i-));
s = ;
for(g = a ; g <= c ; g++)
for(j = b ; j <= i- ; j++)
s+=aa[g][j];
minz = min(minz,s*s+divide(k+,a,i,c,d));
}
dp[k][a][b][c][d] = minz;
return minz;
}
int main()
{
int i,j;
while(scanf("%d",&n)!=EOF)
{
double s=;
memset(dp,,sizeof(dp));
int m = ;
n--;
for(i = ; i <= m ;i++)
for(j = ; j <= m ; j++)
{
scanf("%d",&aa[i][j]);
s+=double(aa[i][j]);
}
s = s/double(n+);
int ans = divide(,,,m,m);
double an = 1.0/double(n+)*double(ans)-s*s;
printf("%.3lf\n",sqrt(an));
}
return ;
}
下面那个不是 贴错了
#include <iostream>
#include<cstdio>
#include<cstring>
#include<stdlib.h>
#define N 5010
#define M 3010
#define INF 0xfffffff
using namespace std;
int dp[M][N],h[N];
int main()
{
int i,j,n,m,g;
scanf("%d%d",&m,&n);
for(i = ; i <= n ;i++)
scanf("%d",&h[i]);
for(i = ; i <= m ;i++)
for(j = ; j <= n ;j++)
dp[i][j] = INF;
int o = INF;
for(i = ; i < n ;i++)
{
dp[][i] = min(o,(h[i]-h[i-])*(h[i]-h[i-]));
o = min(dp[][i],o);
}
for(i = ; i <= m ; i++)
{
int o = INF;
for(j = *i ; j < n-(m-i)* ;j++)
{
if(j-<(n-(m-i+)*))
dp[i][j] = min(o,dp[i-][j-]+(h[j]-h[j-])*(h[j]-h[j-]));
else
dp[i][j] = min(o,dp[i-][j-]+(h[j]-h[j-])*(h[j]-h[j-]));
o = min(o,dp[i][j]);
}
}
printf("%d\n",dp[m][n-]);
return ;
}
poj棋盘分割(记忆化)的更多相关文章
- POJ - 1191 棋盘分割 记忆递归 搜索dp+数学
http://poj.org/problem?id=1191 题意:中文题. 题解: 1.关于切割的模拟,用递归 有这样的递归方程(dp方程):f(n,棋盘)=f(n-1,待割的棋盘)+f(1,割下的 ...
- POJ 1088 滑雪 (记忆化搜索)
题目链接:http://poj.org/problem?id=1088 题意很好懂,就是让你求一个最长下降路线的长度. dp[i][j]记录的是i j这个位置的最优的长度,然后转移方程是dp[i][j ...
- poj 2662(Dijkstra+记忆化)
题目链接:http://poj.org/problem?id=2662 思路:首先路径的选择,如果B点到终点的距离比A点到终点的最短距离短,那么就从A走到B,换句话说,就是每次都是择优选择更靠近终点的 ...
- POJ 1088 滑雪 记忆化DP
滑雪 Time Limit: 1000MS Memory Limit: 65536K Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度 ...
- POJ 1088 滑雪 记忆化优化题解
本题有人写是DP,只是和DP还是有点区别的,应该主要是记忆化 Momoization 算法. 思路就是递归,然后在递归的过程把计算的结果记录起来,以便后面使用. 非常经典的搜索题目,这样的方法非常多题 ...
- 洛谷 P3956 棋盘(记忆化搜索)
嗯... 题目链接:https://www.luogu.org/problem/P3956 这是一道比较好搜的题,注意一些剪枝.预处理和魔法的处理问题(回溯). AC代码: #include<c ...
- POJ 1088 DP=记忆化搜索
话说DP=记忆化搜索这句话真不是虚的. 面对这道题目,题意很简单,但是DP的时候,方向分为四个,这个时候用递推就好难写了,你很难得到当前状态的前一个真实状态,这个时候记忆化搜索就派上用场啦! 通过对四 ...
- POJ 1390 Blocks(记忆化搜索+dp)
POJ 1390 Blocks 砌块 时限:5000 MS 内存限制:65536K 提交材料共计: 6204 接受: 2563 描述 你们中的一些人可能玩过一个叫做“积木”的游戏.一行有n个块 ...
- POJ 1088 滑雪(记忆化搜索+dp)
POJ 1088 滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 107319 Accepted: 40893 De ...
随机推荐
- NodeJs随心学习(一)之UEditor开源项目部署
作为NodeJs的初学者+6年的码农,我觉得从基础看起太慢了,还是直接上Demo好玩一些. 嗯,直接开玩..今天在GitHub上看到了UEditor之NodeJs版的开源项目激起了我浓厚的兴趣,随后决 ...
- Oracle PL/SQL 异常处理
Oracle数据库中的异常:没有异常的转移,因为没有受检异常和非受检异常得区分. 1.异常的产生: 2.异常的处理: declare --变量定义,初始化赋值. begin --变量的赋值,函数调用, ...
- [PR & ML 2] [Introduction] Example: Polynomial Curve Fitting
啊啊啊,竟然不支持latex,竟然HTML代码不能包含javascript,代码编辑器也不支持Matlab!!!我要吐槽博客的编辑器...T_T只能贴图凑合看了,代码不是图,但这次为了省脑细胞,写的不 ...
- BYTE、WORD与DWORD类型
Original Link: http://hi.baidu.com/vnxuaqndtncrxyr/item/f67c83872cf80cd65e0ec10d Author: 厚积薄发 在Visu ...
- node.js 安装express 提示 command is not found
肯定有遇到这样的问题. 在执行express -e app时,出现 command is not found 此时需要执行 : $ npm install -g express-generator 你 ...
- 手动将MySQL服务安装到windows中
我的系统是win7 x64,mysql版本5.6 (网上的老教程很多都没用了,版本太旧,这是我自己总结出来的方法) 下载zip包的mysql可以获得最新版本,还可以免安装,好处多多,但是要把mysql ...
- 最完美解决Nginx部署ThinkPHP项目的办法
网上通用解决方法的配置如下: server { ... location / { index index.htm index.html index.php; #访问路径的文件不存在则重写URL转交给T ...
- 【小知识】DataTable 转 List -----------点滴之水,汇涓涓细流,成汪洋大海
在大部分时候我们从ADO中得到的数据都是DataTable.DataSet数据源,然而有强迫症的同学老是喜欢折腾,硬是要把它转换为实体集合,说是DataTable效率差云云,于是乎收到了同化. 必要信 ...
- hdu 2243 考研路茫茫——单词情结 ac自动机+矩阵快速幂
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2243 题意:给定N(1<= N < 6)个长度不超过5的词根,问长度不超过L(L <23 ...
- 【面试题】百度糯米java工程师面试
面试经历: 技术题问的比较基础的java知识,有个编程题设计团购秒杀方面的设计,之前没有这种经验做的不好,做完题一个技术经理过来面试,主要问了一下之前做的什么项目,对struts,spring的原理做 ...