萌新求助!不仅TLE还WA(时间复杂度的事情我等一下再优化叭。。。
查看原帖
萌新求助!不仅TLE还WA(时间复杂度的事情我等一下再优化叭。。。
322896
xixi_bang楼主2020/5/3 10:47
#include<bits/stdc++.h>
using namespace std;
int ha[6003];//快乐指数
int fa[6003];//上司数组
int dp[6003];//dp[i]表示i职员必须参加舞会时的最大快乐值

int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>ha[i];
    for(int i=1;i<n;i++)
    {
        int a,b;
        cin>>a>>b;
        fa[a]=b;//b为a的上司
    }

    dp[1]=ha[1];
    for(int i=2;i<=n;i++){
        for(int j=1;j<i;j++){
            if(fa[j]!=i)
            {
                int t=dp[j]+ha[i];
                for(int k=1;k<j;k++){
                    if(fa[k]==i)//减去i为直属上司的职员的快乐
                        t-=ha[k];
                }
                dp[i]=max(t,dp[i]);
            }

        }
    }
    int ans=0;
    for(int i=1;i<=n;i++)
        ans=max(ans,dp[i]);
    cout<<ans<<endl;
}
2020/5/3 10:47
加载中...