Find a path HDU - 5492 DP
2017-10-10 16:45
387 查看
在矩阵上找1,1到n,m的方差最小的路径
手推一下公式
∑ni=1(xi−x⎯⎯)2=∑ni=1x2i−(∑ni=1xi)2
这样求可以分阶段处理方差了,用dp[x][y][k]表示
路径走到(x,y)的时候,路径和为k时的最小平方和,对所有减项存最小的被减项(k表示平方和的话第三维太广存不下)
手推一下公式
∑ni=1(xi−x⎯⎯)2=∑ni=1x2i−(∑ni=1xi)2
这样求可以分阶段处理方差了,用dp[x][y][k]表示
路径走到(x,y)的时候,路径和为k时的最小平方和,对所有减项存最小的被减项(k表示平方和的话第三维太广存不下)
//#include<bits/stdc++.h> //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<stdio.h> #include<algorithm> #include<queue> #include<string.h> #include<iostream> #include<math.h> #include<set> #include<map> #include<vector> #include<iomanip> using namespace std; const double pi=acos(-1.0); #define ll long long #define pb push_back #define sqr(a) ((a)*(a)) #define dis(a,b) sqrt(sqr(a.x-b.x)+sqr(a.y-b.y)) #define FOR(a) for(int i=1;i<=a;i++) const double eps=1e-10; const int maxn=2e5+56; const int inf=0x3f3f3f3f; int n,m; int mp[35][35]; int dp[35][35][1800]; int main(){ int kase=0; int T;scanf("%d",&T); while(T--){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%d",&mp[i][j]); memset(dp,inf,sizeof dp); dp[1][1][mp[1][1]]=sqr(mp[1][1]); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(i<n){ for(int k=0;k<=59*30;k++)if(dp[i][j][k]!=inf) dp[i+1][j][k+mp[i+1][j]]=min( dp[i+1][j][k+mp[i+1][j]], dp[i][j][k]+sqr(mp[i+1][j]) ); } if(j<m){ for(int k=0;k<=59*30;k++)if(dp[i][j][k]!=inf) dp[i][j+1][k+mp[i][j+1]]=min( dp[i][j+1][k+mp[i][j+1]], dp[i][j][k]+sqr(mp[i][j+1]) ); } } } int ans=inf; for(int i=0;i<=59*30;i++){ if(dp [m][i]!=inf) ans=min(ans,(n+m-1)*dp [m][i]-i*i); } printf("Case #%d: %d\n",++kase,ans); } }
相关文章推荐
- HDU - 5492 Find a path (推公式+暴力DP 15年ICPC合肥网赛)
- hdu 5492 Find a path(公式推导,DP)
- HDU 5492 Find a path DP —— 2015 ACM-ICPC Asia Regional Hefei Online
- HDU 5492 Find a path (dp)
- HDU - 5492 Find a path 【DP+数学】
- HDU 5492 Find a path DP
- hdu 5492 Find a path 2015合肥网络赛 dp 数学
- hdu 5492 Find a path【dp】
- HDU 5492 Find a path(DP)
- HDU 5492 Find a path【DP】
- HDU 5492 Find a path(数学 + DP)
- hdu-5492 Find a path(dp)
- HDU 5492 Find a path(DP)——2015 ACM/ICPC Asia Regional Hefei Online
- hdu 5492 Find a path(dp)
- HDU 5492 Find a path (dp) 2015合肥网络赛
- HDU 5492 Find a path DP —— 2015 ACM-ICPC Asia Regional Hefei Online
- HDU 5492 Find a path(DP)
- Hdu 5492 Find a path【Dp】
- 【动态规划】HDU 5492 Find a path (2015 ACM/ICPC Asia Regional Hefei Online)
- [dp] hdu 5492 Find a path