1 solutions
-
0
C++ :
#include<iostream> #include<cstring> #include<cstdio> using namespace std; const int maxn=2010; int n,m; int a[maxn],b[maxn]; int f[maxn][maxn]; int m_min(int,int,int); void dp(); int main() { //freopen("contest.in","r",stdin); //freopen("contest.out","w",stdout); dp(); return 0; } int m_min(int x,int y,int z) { int temp=x; if(temp>y) temp=y; if(temp>z) temp=z; return temp; } void dp() { cin>>n>>m; for(int i=1;i<=n;i++) { cin>>a[i]; a[i]--; } for(int i=1;i<=m;i++) { cin>>b[i]; b[i]--; } memset(f,0x7f,sizeof(f)); f[n+1][m+1]=0; for(int i=n;i>0;i--) for(int j=m;j>0;j--) f[i][j]=m_min(f[i+1][j],f[i][j+1],f[i+1][j+1])+a[i]*b[j]; cout<<f[1][1]<<endl; }
- 1
Information
- ID
- 17813
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By