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,但是也不能说就是 我们只要想好了一个怎么变成两个,剩下的就好了,但是怎么变,就是变化 ...
随机推荐
- Where can I check in?
Where can I check in? 在哪儿办理登记手续?
- Ubuntu 17.10 用 apt 搭建 lamp 环境、安装 phpmyadmin、redis 服务+扩展、mysql 扩展、开启错误提示、配置虚拟主机
2018-02-24 13:50:30 更新: 个人喜欢相对原生又不太麻烦,所以用 apt 构建环境.不过,最近使用到现在记得出现过了 3 次 apache 或 mysql 服务器无法启动或无法连接的 ...
- javascript 之数据类型--01
写在前面 国庆整理资料时,发现刚开始入门前端时学习JS 的资料,打算以一个基础入门博客记录下来,有不写不对的多多指教: 先推荐些书籍给需要的童鞋 <JavaScript 高级程序设计.pdf&g ...
- RF和adaboost
通过对所有的决策树进行加总来预测新的数据(在分类时采用多数投票,在回归时采用平均).
- [loj6039]「雅礼集训 2017 Day5」珠宝 dp+决策单调性+分治
https://loj.ac/problem/6039 我们设dp[i][j]表示考虑所有价值小于等于i的物品,带了j块钱的最大吸引力. 对于ci相同的物品,我们一定是从大到小选k个物品,又发现最大的 ...
- chrome浏览器使用HTML5预览图片
chrome浏览器对HTML5支持的较好,使用HTML5的File相关的api,可以实现前台页面在选定图片后,不上传即可预览.代码如下: 1.前台代码,使用<input type="f ...
- Hibernate (开源对象关系映射框架)
一.基本介绍1.它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm(对象关系映射)框架,hibernate可以自动生成SQL语句,自动执行: Hibern ...
- Java经典设计模式之五大创建型模式
转载: Java经典设计模式之五大创建型模式 一.概况 总体来说设计模式分为三大类: (1)创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. (2)结构型模式,共七种: ...
- 百度地图API详解之自定义地图类型
http://blog.csdn.net/sup_heaven/article/details/8461586 今天的文章主要介绍如何利用地图API实现自定义地图. 百度地图API目前默认支持两种地图 ...
- [Codeforces19D]Points 线段树
大致题意: 给出n个询问,每次询问有三种: 1.往平面上加一个点 2.删除平面上的一个点 3.给出一个点p,查询平面上某点q,使得q.x>p.x且q.y>p.y,输出x轴坐标最小的q,若有 ...