NOI1999 JZYZOJ1289 棋盘分割 dp 方差的数学结论
http://172.20.6.3/Problem_Show.asp?id=1289
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
int n;
int a[][]={};
double f[][][][][]={};
bool vis[][][][][]={};
int main(){
scanf("%d",&n);
for(int i=;i<=;i++){
for(int j=;j<=;j++){
scanf("%d",&a[i][j]);
a[i][j]+=a[i][j-];
a[i][j]+=a[i-][j];
a[i][j]-=a[i-][j-];
}
}
for(int i=;i<=;i++){
for(int j=;j<=;j++){
for(int w=i;w<=;w++){
for(int q=j;q<=;q++){
f[][i][j][w][q]=1.0*(a[w][q]-a[i-][q]-a[w][j-]+a[i-][j-]);
f[][i][j][w][q]*=f[][i][j][w][q];vis[][i][j][w][q]=;
}
}
}
}
double ro=1.0*a[][]/(1.0*n);
ro=ro*ro;
for(int k=;k<=n;k++){
for(int i=;i<=;i++){
for(int j=;j<=;j++){
for(int w=i;w<=;w++){
for(int q=j;q<=;q++){
for(int z=i;z<w;z++){
if((vis[k-][i][j][z][q]&&vis[][z+][j][w][q])&&(vis[k][i][j][w][q]==||f[k][i][j][w][q]-(f[k-][i][j][z][q]+f[][z+][j][w][q])>)){
f[k][i][j][w][q]=f[k-][i][j][z][q]+f[][z+][j][w][q];vis[k][i][j][w][q]=;
}
if((vis[][i][j][z][q]&&vis[k-][z+][j][w][q])&&(vis[k][i][j][w][q]==||f[k][i][j][w][q]-(f[][i][j][z][q]+f[k-][z+][j][w][q])>)){
f[k][i][j][w][q]=f[][i][j][z][q]+f[k-][z+][j][w][q];vis[k][i][j][w][q]=;
}
}
for(int z=j;z<q;z++){
if((vis[k-][i][j][w][z]&&vis[][i][z+][w][q])&&(vis[k][i][j][w][q]==||f[k][i][j][w][q]-(f[k-][i][j][w][z]+f[][i][z+][w][q])>)){
f[k][i][j][w][q]=f[k-][i][j][w][z]+f[][i][z+][w][q];vis[k][i][j][w][q]=;
}
if((vis[][i][j][w][z]&&vis[k-][i][z+][w][q])&&(vis[k][i][j][w][q]==||f[k][i][j][w][q]-(f[][i][j][w][z]+f[k-][i][z+][w][q])>)){
f[k][i][j][w][q]=f[][i][j][w][z]+f[k-][i][z+][w][q];vis[k][i][j][w][q]=;
}
}
}
}
}
}
}
double z=f[n][][][][]/n-ro;
z=sqrt(z);
printf("%.3f\n",z);
return ;
}
NOI1999 JZYZOJ1289 棋盘分割 dp 方差的数学结论的更多相关文章
- P1436 棋盘分割[dp]
题目描述 将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的两部分中的任意一块继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共有n块矩形棋盘.(每次 ...
- POJ 1191 棋盘分割(DP)
题目链接 大体思路看,黑书...其他就是注意搞一个in数组,这样记忆化搜索,貌似比较快. #include <cstdio> #include <cstring> #inclu ...
- poj 1191 棋盘分割(dp + 记忆化搜索)
题目:http://poj.org/problem?id=1191 黑书116页的例题 将方差公式化简之后就是 每一块和的平方 相加/n , 减去平均值的平方. 可以看出来 方差只与 每一块的和的平方 ...
- [NOI1999] 棋盘分割(推式子+dp)
http://poj.org/problem?id=1191 棋盘分割 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 156 ...
- [NOI1999] 棋盘分割
COGS 100. [NOI1999] 棋盘分割 http://www.cogs.pro/cogs/problem/problem.php?pid=100 ★★ 输入文件:division.in ...
- POJ1991 NOI1999棋盘分割
棋盘分割 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 15581 Accepted: 5534 Description ...
- HDU 2517 / POJ 1191 棋盘分割 区间DP / 记忆化搜索
题目链接: 黑书 P116 HDU 2157 棋盘分割 POJ 1191 棋盘分割 分析: 枚举所有可能的切割方法. 但如果用递归的方法要加上记忆搜索, 不能会超时... 代码: #include& ...
- poj1191 棋盘分割【区间DP】【记忆化搜索】
棋盘分割 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 16263 Accepted: 5812 Description ...
- POJ 1191棋盘分割问题
棋盘分割问题 题目大意,将一个棋盘分割成k-1个矩形,每个矩形都对应一个权值,让所有的权值最小求分法 很像区间DP,但是也不能说就是 我们只要想好了一个怎么变成两个,剩下的就好了,但是怎么变,就是变化 ...
随机推荐
- 【BZOJ】3572: [Hnoi2014]世界树 虚树+倍增
[题意]给定n个点的树,m次询问,每次给定ki个特殊点,一个点会被最近的特殊点控制,询问每个特殊点控制多少点.n,m,Σki<=300000. [算法]虚树+倍增 [题解]★参考:thy_asd ...
- bootstrap分页查询传递中文参数到后台(get方式提交)
<!--分页 --> <div style="width: 380px; margin: 0 auto; margin-top: 50px;"> <u ...
- python设计模式之内置装饰器使用(四)
前言 python内部有许多内建装饰器,它们都有特别的功能,下面对其归纳一下. 系列文章 python设计模式之单例模式(一) python设计模式之常用创建模式总结(二) python设计模式之装饰 ...
- 概述sysfs文件系统【转】
转自:http://blog.csdn.net/npy_lp/article/details/78933292 内核源码:linux-2.6.38.8.tar.bz2 目标平台:ARM体系结构 sys ...
- WebBrowser中运行js
HtmlElement script = wf.WebBrowser.Document.CreateElement("script"); script.SetAttribute(& ...
- juery中监听input的变化事件
$('#searchValue').bind('input propertychange', function() { searchFundList(); });
- 34.Find First and Last Position of Element in Sorted Array---头条面试题、《剑指offer》38
题目链接 题目大意:找出一串升序数组中target值的起始下标和结束下标值,如果不存在则返回{-1,-1}. 解法一:用二分查找,找到数组中的target,然后找其左边和右边的target下标值.代码 ...
- 【题解】BZOJ 3065: 带插入区间K小值——替罪羊树套线段树
题目传送门 题解 orz vfk的题解 3065: 带插入区间K小值 系列题解 一 二 三 四 惨 一开始用了一种空间常数很大的方法,每次重构的时候merge两颗线段树,然后无限RE(其实是MLE). ...
- 一个好的Java时间工具类DateTime
此类的灵感来源于C# 虽然网上有什么date4j,但是jar太纠结了,先给出源码,可以继承到自己的util包中,作为一个资深程序员,我相信都有不少好的util工具类,我也希望经过此次分享,能带动技术大 ...
- js写一个插件
//;分号开头,用于防止代码压缩合并时与其它代码混在一起造成语法错误 //而事实证明,uglify压缩工具会将无意义的前置分号去掉,我只是习惯了这么写 //(function(){})();立即执行函 ...