bzoj 1048 记忆化dfs
来源:互联网 发布:批发部进销存软件 编辑:程序博客网 时间:2024/06/05 03:26
方差公式:D[X]=E[X^2]-(E[X])^2
E[X]是定的,求出平方和的最小值即可。
记忆化dfs一下即可。
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define INF 0x3f3f3f3f#include<climits>typedef long long LL;using namespace std;int t[15][15][15][15][15];int a[15][15],sum[15][15];int n,m,k;int dfs(int a,int b,int c,int d,int k){ int &res=t[a][b][c][d][k]; if(res!=-1)return res; if(k==0){ res=(sum[c][d]+sum[a-1][b-1]-sum[c][b-1]-sum[a-1][d])*(sum[c][d]+sum[a-1][b-1]-sum[c][b-1]-sum[a-1][d]); return res; } res=INF; for(int i=a;i<=c-1;i++){ for(int j=0;j<k;j++){ res=min(res,dfs(a,b,i,d,j)+dfs(i+1,b,c,d,k-1-j)); } } for(int i=b;i<=d-1;i++){ for(int j=0;j<k;j++){ res=min(res,dfs(a,b,c,i,j)+dfs(a,i+1,c,d,k-1-j)); } } return res;}int main(){ freopen("in.txt","r",stdin); scanf("%d%d%d",&n,&m,&k); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ scanf("%d",&a[i][j]); } } memset(t,-1,sizeof(t)); //cout<<t[0][0][0][0][0]<<endl; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ sum[i][j]=a[i][j]+sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]; } } double ave=(double)sum[n][m]/k; int ss=dfs(1,1,n,m,k-1); printf("%.2lf\n",sqrt((double)ss/k-ave*ave)); return 0;}
0 0
- bzoj 1048 记忆化dfs
- poj 2192 记忆化&dfs
- hdu1428(记忆化搜索+DFS)
- HDU1078 记忆化DFS+dp
- hdu4478 dfs+记忆化
- 【记忆化DFS】HDOJ1242 Rescue
- DFS记忆化搜索(1181)
- BZOJ 1079 记忆化搜索
- bzoj 1048: [HAOI2007]分割矩阵 (记忆化搜索)
- HDU1428(BFS+DFS+记忆化搜索)
- hdu1978How many ways (记忆化搜索+DFS)
- HDU1978How Many Ways 记忆化dfs+dp
- POJ 1088 滑雪 DFS 记忆化搜索
- poj 1088 DFS+记忆化搜索
- AOJ 455 DFS+记忆化搜索
- 【DFS(记忆化)】hdu 1501 Zipper
- POJ 1088 滑雪 DFS 记忆化搜索
- poj 1088 滑雪 【记忆化搜索】+【DFS】
- 将一个不含有纹理坐标信息的三维模型通过某种算法实现程序化生成纹理坐标
- 我的软件工程课目标
- amaze ui教程
- 《unix/linux编程实践教程》学习笔记:第七章 事件驱动编程:编写一个视频游戏
- JNI简介(一)
- bzoj 1048 记忆化dfs
- 聚类算法分析
- Linux进程创建和结束
- 算法提高 聪明的美食家
- The difference between VNLS_PARAMETERS and NLS_DATABASE_PARAMETERS
- 有关opencv的学习(10)—彩色图像的直方图显示
- 类的权限控制有那么重要吗?
- 第十九章 泛型
- 数组默认值的问题