连接:http://poj.org/problem?id=1191

思路:额,其实就是直接搞记录一下就可以了。

 #include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#define loop(s,i,n) for(i = s;i < n;i++)
#define cl(a,b) memset(a,b,sizeof(a))
int map[][];
int sum[][][][];
int dp[][][][][];
double average;
int n;
using namespace std;
void init()
{
int i,j,ii,jj,iii,jjj;
loop(,i,)
{
loop(,j,)
{
loop(i,ii,)
{
loop(j,jj,)
{
int ans;
ans = ;
loop(i,iii,ii+)
loop(j,jjj,jj+)
ans+=map[iii][jjj];
ans = (ans)*(ans);
sum[i][j][ii][jj] += ans;
} }
}
}
}
int deal(int k,int x,int y,int xx,int yy)
{ if(dp[k][x][y][xx][yy] >= ) return dp[k][x][y][xx][yy];
if(k == n)
return sum[x][y][xx][yy]; int i,j,ans;
dp[k][x][y][xx][yy] = ;
for(i = x;i <= xx-;i++)
{
ans = min(deal(k+,x,y,i,yy)+sum[i+][y][xx][yy],deal(k+,i+,y,xx,yy)+sum[x][y][i][yy]);
dp[k][x][y][xx][yy] = min(ans,dp[k][x][y][xx][yy]);
} for(j = y;j <= yy-;j++)
{
ans = min(deal(k+,x,y,xx,j)+sum[x][j+][xx][yy],deal(k+,x,j+,xx,yy)+sum[x][y][xx][j]);
dp[k][x][y][xx][yy] = min(ans,dp[k][x][y][xx][yy]);
} return dp[k][x][y][xx][yy];
}
int main()
{
//int n;
//
// freopen("in.txt","r",stdin);
while(~scanf("%d",&n))
{
int i,j;
average = ;
loop(,i,)
{
loop(,j,)
scanf("%d",map[i]+j),average += map[i][j];
} average = 1.0*average/n;
cl(sum,);
cl(dp,-);
init();
deal(,,,,);
// puts("yes"); double ans = sqrt(dp[][][][][]*1.0/n-average*average);
printf("%.3f",ans);
}
return ;
}

poj1191 棋盘分割。 dp的更多相关文章

  1. poj1191 棋盘分割【区间DP】【记忆化搜索】

    棋盘分割 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16263   Accepted: 5812 Description ...

  2. poj1191棋盘分割——区间DP

    题目:http://poj.org/problem?id=1191 分析题意,可知每次要沿棋盘中的一条线把一块一分为二,取其中一块继续分割: σ最小经分析可知即为每块的xi和的平方最小: 故用区间DP ...

  3. POJ1191 棋盘分割(DP)

    化简一下那个方差得到:$$\sqrt\frac{(\Sigma_{i=1}^nx_i)-n\bar x^2}{n}$$ 除了$\Sigma_{i=1}^nx_i$这部分未知,其余已知,而那部分显然越大 ...

  4. P1436 棋盘分割[dp]

    题目描述 将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的两部分中的任意一块继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形棋盘.(每次 ...

  5. POJ 1191 棋盘分割(DP)

    题目链接 大体思路看,黑书...其他就是注意搞一个in数组,这样记忆化搜索,貌似比较快. #include <cstdio> #include <cstring> #inclu ...

  6. POJ1191棋盘分割

    题目:http://poj.org/problem?id=1191 1.分析式子!!! 发现xba是定值,σ的大小仅和∑ xi^2 有关.故dp条件是平方和最小. 2.分出一块就像割掉一条,只需枚举从 ...

  7. NOI1999 JZYZOJ1289 棋盘分割 dp 方差的数学结论

    http://172.20.6.3/Problem_Show.asp?id=1289 除了下标一坨一坨屎一样挺恶心其他都还挺容易的dp,这道题才发现scanf保留小数位是四舍五入的,惊了. f[k][ ...

  8. poj 1191 棋盘分割(dp + 记忆化搜索)

    题目:http://poj.org/problem?id=1191 黑书116页的例题 将方差公式化简之后就是 每一块和的平方 相加/n , 减去平均值的平方. 可以看出来 方差只与 每一块的和的平方 ...

  9. POJ1191 棋盘分割

    Time Limit: 1000MS Memory Limit: 10000K Total Submissions: Accepted: 题目链接: http://poj.org/problem?id ...

随机推荐

  1. 我见过的最完善的log4net配置

    Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专 门的调试工具了.然而 一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的 ...

  2. python之sys.stdout、sys.stdin以及设置打印到日志文件等

    转自:https://www.cnblogs.com/BigFishFly/p/6622784.html python之sys.stdout.sys.stdin 转自:http://www.cnblo ...

  3. python操作redis详解

    https://www.cnblogs.com/koka24/p/5841826.html

  4. Qt 模拟鼠标点击(QApplication::sendEvent(ui->pushbutton, &event0);)

    QPoint pos(0,0);QMouseEvent event0(QEvent::MouseButtonPress, pos, Qt::LeftButton, Qt::LeftButton, Qt ...

  5. 大话存储1——存储系统的发展,计算机I/O

    1 存储发展 存储在这里的含义为信息记录,是伴随人类活动出现的技术. 1. 竹简和纸张 竹简是中国古代使用的记录文字的工具,后来被纸张所取代,如图1.1所示. 2. 选数管 选数管是20世纪中期出现的 ...

  6. 给所有开发者的React Native详细入门指南

    建议先下载好资料后,再阅读本文.demo代码和资料下载 目录 一.前言 二.回答一些问题 1.为什么写此教程 2.本文适合哪些人看 3.如何使用本教程 4.需要先学习JavaScript.HTML.C ...

  7. Eclipse中没有javax.servlet和javax.servlet.http包的处理办法

    使用Eclips开发JSP也需要这两个包:javax.servlet和javax.servlet.http:若提示没有javax.servlet包则安装如下处理办法解决: 如果你装了Tomacat,那 ...

  8. 2016-ccf-data-mining-competition 搜狗用户画像构建

    想法1:   分成147(3*7*7)类, 后来觉得这样效果不好,后来看了看竞赛要求的也是分别预测,分别评分,而不是一次就把3类的标签都给出   所有后来我们改进了当时的想法,决定对年龄,性别,学历进 ...

  9. Good Bye 2018 Solution

    A. New Year and the Christmas Ornament 签到. #include <bits/stdc++.h> using namespace std; int a ...

  10. EF Code First学习笔记:数据库创建(转)

    控制数据库的位置 默认情况下,数据库是创建在localhost\SQLEXPRESS服务器上,并且默认的数据库名为命名空间+context类名,例如我们前面的BreakAway.BreakAwayCo ...