LeetCode第 266 场周赛

2062. 统计字符串中的元音子字符串

这道题唬人

2065. 最大化一张图中的路径价值

https://leetcode-cn.com/problems/maximum-path-quality-of-a-graph/
这题重在读题
每个节点 至多 有 四条 边与之相连。
10 <= timej, maxTime <= 100
说明最多往下十层 就算每次都是四种选择 时间复杂度 4的10次方 2^20一百万可以接受
所以选择暴搜
具体做法 无向图遍历 遍历过的点需要打标记因为节点价值只记一次 如果当前点是0更新最大值

class Solution {
public:
int ans=0;
void dfs(int ver,int sum,int time,vector <vector<pair<int,int>>>& e,vector<int>& v, int maxTime, vector<bool>& f)
{
    if(time>maxTime)return ;
   if(ver==0){
       ans=max(ans,sum);
   }
   for(auto x: e[ver])
   {
       int u=x.first,quan=x.second;
       if(f[u]) dfs(u,sum,time+quan,e,v,maxTime,f);
       else
       {
           f[u]=true;
            dfs(u,sum+v[u],time+quan,e,v,maxTime,f);
            f[u]=false;
       }  
   }
}
    int maximalPathQuality(vector<int>& v, vector<vector<int>>& edges, int maxTime) {
        int n=v.size();
        vector<pair<int,int>>w;
        vector <vector<pair<int,int>>>e(n,w);
        vector<bool>f(n,false);
        for(auto x:edges)
        {
            e[x[0]].push_back({x[1],x[2]});
            e[x[1]].push_back({x[0],x[2]});
        }
        f[0]=true;
        dfs(0,v[0],0,e,v,maxTime,f);//ver sum time 边 最大时间
        return ans; 
        
    }
};
上一篇:Linux apache下导入SSL证书


下一篇:洛谷P3402 可持久化并查集 题解