zoukankan      html  css  js  c++  java
  • BZOJ 1048 [HAOI2007]分割矩阵 记忆化搜索

    数据范围果断小,果断暴力。。。

    View Code
     1 #include <iostream>
     2 #include <cstring>
     3 #include <cstdio>
     4 #include <cstdlib>
     5 #include <algorithm>
     6 #include <cmath>
     7 
     8 #define N 14
     9 #define INF 1e9
    10 
    11 using namespace std;
    12 
    13 int a,b,n;
    14 double sm[N][N],map[N][N],dp[N][N][N][N][N],sum,sumb;
    15 
    16 inline void read()
    17 {
    18     scanf("%d%d%d",&a,&b,&n);
    19     for(int i=1;i<=a;i++)
    20         for(int j=1;j<=b;j++)
    21             scanf("%lf",&map[i][j]),sum+=map[i][j];
    22     sumb=sum/n;
    23     for(int i=1;i<=a;i++)
    24         for(int j=1;j<=b;j++)
    25             sm[i][j]=sm[i-1][j]+sm[i][j-1]-sm[i-1][j-1]+map[i][j];
    26 }
    27 
    28 inline double dfs(int x1,int y1,int x2,int y2,int cs)
    29 {
    30     double &res=dp[x1][y1][x2][y2][cs];
    31     if(res<INF) return res;
    32     if(cs==0)
    33     {
    34         res=(sm[x2][y2]+sm[x1-1][y1-1]-sm[x1-1][y2]-sm[x2][y1-1])-sumb;
    35         res=res*res;
    36         return res;
    37     }
    38     for(int i=x1;i<x2;i++)
    39         for(int j=0;j<=cs-1;j++)
    40             res=min(res,dfs(x1,y1,i,y2,j)+dfs(i+1,y1,x2,y2,cs-j-1));
    41     for(int i=y1;i<y2;i++)
    42         for(int j=0;j<=cs-1;j++)
    43             res=min(res,dfs(x1,y1,x2,i,j)+dfs(x1,i+1,x2,y2,cs-j-1));
    44     return res;
    45 }
    46 
    47 inline void go()
    48 {
    49     for(int i=0;i<=10;i++)
    50         for(int j=0;j<=10;j++)
    51             for(int k=0;k<=10;k++)
    52                 for(int p=0;p<=10;p++)
    53                     for(int q=0;q<=10;q++)
    54                         dp[i][j][k][p][q]=INF;
    55     dfs(1,1,a,b,n-1);
    56     printf("%.2lf\n",sqrt(dp[1][1][a][b][n-1]/n));
    57 }
    58 
    59 int main()
    60 {
    61     read(),go();
    62     return 0;
    63 }
  • 相关阅读:
    今日头条、Face++开发岗面经
    美团offer面经
    成都百度测试开发一二面面经
    美团四面面经
    久邦数码(3G门户)面试
    58 面试
    好未来提前批
    百度提前批
    新浪面经
    Java Programs
  • 原文地址:https://www.cnblogs.com/proverbs/p/2945111.html
Copyright © 2011-2022 走看看