即墨有做网站的吗,深圳网络有限公司有哪些,安阳百姓网,友汇网网站建设管理后台正题
题目链接:https://www.luogu.org/problem/P2217 题目大意 a∗ba*ba∗b的矩阵#xff0c;分成nnn个矩阵#xff0c;求每个矩阵均方差最小#xff0c;求答案。 解题思路
切n−1n-1n−1刀 设fk,x1,y1,x2,y2f_{k,x1,y1,x2,y2}fk,x1,y1,x2,y2表示矩阵(x1,y1,x2,y2)(x1,y…正题
题目链接:https://www.luogu.org/problem/P2217 题目大意
a∗ba*ba∗b的矩阵分成nnn个矩阵求每个矩阵均方差最小求答案。 解题思路
切n−1n-1n−1刀 设fk,x1,y1,x2,y2f_{k,x1,y1,x2,y2}fk,x1,y1,x2,y2表示矩阵(x1,y1,x2,y2)(x1,y1,x2,y2)(x1,y1,x2,y2)还剩下kkk刀时的最小均方差dfsdfsdfs转移即可。 codecodecode
#includecstdio
#includecstring
#includealgorithm
#includecmath
using namespace std;
int a,b,n;
double x[12][12],f[12][12][12][12][12],ave;
bool v[12][12][12][12][12];
double dfs(int dep,int x1,int y1,int x2,int y2)
{if(v[dep][x1][y1][x2][y2])return f[dep][x1][y1][x2][y2];if(!dep){double ans0;for(int ix1;ix2;i)for(int jy1;jy2;j)ansx[i][j];v[dep][x1][y1][x2][y2]1;return (f[dep][x1][y1][x2][y2]((ans-ave)*(ans-ave)));}double mins1e9;for(int i0;idep;i){for(int jx1;jx2;j)minsmin(mins,dfs(i,x1,y1,j,y2)dfs(dep-i-1,j1,y1,x2,y2));for(int jy1;jy2;j)minsmin(mins,dfs(i,x1,y1,x2,j)dfs(dep-i-1,x1,j1,x2,y2));}v[dep][x1][y1][x2][y2]1;f[dep][x1][y1][x2][y2]mins;if(mins0) printf(%d %d %d %d %d\n,dep,x1,y1,x2,y2);return mins;
}
int main()
{scanf(%d%d%d,a,b,n);for(int i1;ia;i)for(int j1;jb;j)scanf(%lf,x[i][j]),avex[i][j];ave/(double)n;dfs(n-1,1,1,a,b);printf(%.2lf,sqrt(f[n-1][1][1][a][b]/(double)n));
}