UESTC 881 神秘绑架案 --二维DP
2014-05-31 20:43
267 查看
LRJ黑书上的例题。
化简均方差公式:
View Code
化简均方差公式:
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #define Mod 1000000007 using namespace std; #define N 2100 double dp[17][9][9][9][9],sum[9][9][9][9],mp[9][9]; double SUM2(int i,int j,int a,int b) { if(sum[i][j][a][b] >= 0) return sum[i][j][a][b]; double res = 0; int k,h; for(k=i;k<=a;k++) for(h=j;h<=b;h++) res += mp[k][h]; sum[i][j][a][b] = res*res; return sum[i][j][a][b]; } double solve(int k,int i,int j,int a,int b) { if(k == 1) return SUM2(i,j,a,b); if(dp[k][i][j][a][b] >= 0) return dp[k][i][j][a][b]; double Min1 = Mod; double Min2 = Mod; for(int s=i;s<a;s++) Min1 = min(Min1,min(solve(k-1,i,j,s,b)+SUM2(s+1,j,a,b),solve(k-1,s+1,j,a,b)+SUM2(i,j,s,b))); for(int h=j;h<b;h++) Min2 = min(Min2,min(solve(k-1,i,j,a,h)+SUM2(i,h+1,a,b),solve(k-1,i,h+1,a,b)+SUM2(i,j,a,h))); dp[k][i][j][a][b] = min(Min1,Min2); return dp[k][i][j][a][b]; } int main() { double SUM,AX; int i,j,n; SUM = 0; scanf("%d",&n); for(i=1;i<=8;i++) { for(j=1;j<=8;j++) { scanf("%lf",&mp[i][j]); SUM += mp[i][j]; } } AX = SUM/(double)n; AX *= AX; memset(sum,-1,sizeof(sum)); memset(dp,-1,sizeof(dp)); printf("%.3lf\n",sqrt(solve(n,1,1,8,8)/(double)n-AX)); return 0; }
View Code
相关文章推荐
- UESTC_神秘绑架案 CDOJ 881
- uestc 1307 windy数 数位DP
- 榨取kkksc03 luogu1855 dp 裸二维费用背包
- uestc 250 windy数(数位dp)
- 传纸条 NOIP2008 洛谷1006 二维dp
- UESTC 879 (斜率DP)
- POJ1015-Jury Compromise 以及 uva 323正确二维DP解法 (K)
- POJ 1160 Post Office(抽象的二维DP)
- BestCoder Round #56 1002 Clarke and problem 1003 Clarke and puzzle (dp,二维bit或线段树)
- HDU 2159.FATE【二维费用背包(dp)】【4月25】
- 2015 UESTC Training for Dynamic Programming A- 男神的礼物(区间dp)
- [dp]uestc oj 邱老师看电影
- 洛谷 P2733 家的范围 二维DP
- 几个基础数位DP(hdu 2089,hdu 3555,uestc 1307 windy 数)
- hihocoder 1290 Demo Day 二维图的dp
- !HDU 1158 Employment Planning--DP--(二维)
- uva10313(二维多重DP)
- HDU 5119 Happy Matt Friends(简单二维dp)
- dp之二维背包hdu3496
- UESTC 84 DP