dfs,另外用dp[k][x1][y1][x2][y2]进行标记
#include<iostream> #include<cmath> using namespace std; #define N 20 double G[10][10],dp[20][10][10][10][10];//棋盘; double e; double f(int x1,int y1,int x2,int y2) { return (G[x2][y2]-G[x1-1][y2]-G[x2][y1-1]+G[x1-1][y1-1])*(G[x2][y2]-G[x1-1][y2]-G[x2][y1-1]+G[x1-1][y1-1]); } double Div(int k,int x1,int y1,int x2,int y2) { if(k==0) return f(x1,y1,x2,y2); if(fabs(dp[k][x1][y1][x2][y2])>1e-6)return dp[k][x1][y1][x2][y2]; double mins=300000000; for(int i=x1;i<x2;i++) mins=min(mins,min(Div(k-1,x1,y1,i,y2)+f(i+1,y1,x2,y2),Div(k-1,i+1,y1,x2,y2)+f(x1,y1,i,y2))); for(int i=y1;i<y2;i++) mins=min(mins,min(Div(k-1,x1,y1,x2,i)+f(x1,i+1,x2,y2),Div(k-1,x1,i+1,x2,y2)+f(x1,y1,x2,i))); dp[k][x1][y1][x2][y2]=mins; return mins; } int main() { int n; int sum=0; scanf("%d",&n); for(int i=1;i<=8;i++) G[0][i]=0; for(int i=1;i<=8;i++) { int tmp=0; for(int j=1;j<=8;j++) { int a; scanf("%d",&a); sum+=a; tmp+=a; G[i][j]=G[i-1][j]+tmp; } } e=sum/n; printf("%.3lf\n",sqrt(Div(n-1,1,1,8,8)/n-pow(e,2))); }
相关推荐
BOJ的题目1023. Ancient Keyboard解法 源代码
boj 上08 09 年复试模拟题的答案
boj:算法
JAVA_BOJ
Algorithm-BOJ.zip,BekJon在线法官(Java,Kotlin,SWIFT)和PS路线图,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
BOJ
Algorithm-BOJ-PSJ.zip,Baykon在线判断JAVA问题解决方法(第二章),算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
Algorithm-BOJ-AutoCommit.zip,当您解决baekjoon online judge的问题时,它会自动提交并推送到远程存储库。,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
Algorithm-boj-auto-submit.zip,日本央行cli提交脚本,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
资源分类:Python库 所属语言:Python 资源全名:boj-0.0.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
通过这本图画书展示您的创造力,其中包括Boj和朋友。 一本有趣的,全数字化且可重复使用的着色书,可用于 通过这本图画书展示您的创造力,其中包括Boj和朋友。 一本有趣的全数字可重复使用的图画书,专为孩子,父母...
解决问题 Boj.kr
BOJ:日本央行
boj:算法求解