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;
}
};