纪念一下::AstronomicalRecordsEasy

#include <vector>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
class AstronomicalRecordsEasy
{
    public:
        int minimalPlanets(vector <int> A, vector <int> B)
        {
            int a=A.size(),b=B.size(),ans=a+b,dp[60][60];
            for(int i=0;i<a;i++)
                for(int j=0;j<b;j++)
                {
                    memset(dp,0,sizeof(dp));
                    dp[i][j]=1;// int m=0;
                    for(int k=0;k<=a;k++)
                    for(int l=0;l<=b;l++)
                    {
                        if(k>0) dp[k][l]=max(dp[k][l],dp[k-1][l]);
                        if(l>0) dp[k][l]=max(dp[k][l],dp[k][l-1]);
                        if(A[k]*B[j]==A[i]*B[l])
                        {
                            if(l==0 || k==0) dp[k][l]=max(dp[k][l],1);
                            else dp[k][l]=max(dp[k-1][l-1]+1,dp[k][l]);
                        }
                        //m=max(m,dp[l][k]);
                    }
                    ans=min(ans,a+b-dp[a-1][b-1]);
                }
                return ans;
        }
        
};

 

posted on 2013-10-16 02:24  uestc小田  阅读(130)  评论(0编辑  收藏  举报

导航