当前位置: 首页 > news >正文

w网站链接如何做脚注网络游戏推广员是做什么的

w网站链接如何做脚注,网络游戏推广员是做什么的,网站更换ico文件位置,17模板网入口Leetcode 2065. 最大化一张图中的路径价值 暴力DFS 容易想到,从0点出发DFS,期间维护已经走过的距离(时间)和途径点的权值之和,若访问到0点则更新答案,若下一步的距离与已走过的距离和超出了maxTime&#…

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

暴力DFS

容易想到,从0点出发DFS,期间维护已经走过的距离(时间)和途径点的权值之和,若访问到0点则更新答案,若下一步的距离与已走过的距离和超出了maxTime,则不能向下继续DFS

注意的是,每个点的权值只会计算一次,可以使用一个boolean数组 vis[ ] 来记录该点的权值是否已经计算过
另一种方法是,每当第一次到达一个点并获得权值后,将它的权值修改为0,若后续又一次访问到该点,加0不会影响最终结果,省去vis数组的操作

超时,通过样例59 / 62

class Solution {int res;public void dfs(int x, int[] values, int[][] map, int maxTime, int time, int sum){if(x == 0){res = Math.max(res, sum);}int n = values.length;for(int i = 0 ; i < n; i ++){if(map[x][i] != 0 && time + map[x][i] <= maxTime){int val = values[i];values[i] = 0;dfs(i, values, map, maxTime, time + map[x][i], sum + val);values[i] = val;}}return ;}public int maximalPathQuality(int[] values, int[][] edges, int maxTime) {int n = values.length;int [][] map = new int [n][n];for(int[] e: edges){int a = e[0];int b = e[1];int t = e[2];map[a][b] = t;map[b][a] = t;}res = 0;int val = values[0];values[0] = 0;dfs(0, values, map, maxTime, 0, val);return res;}
}

最短路 优化剪枝

注意到,当判断一个点是否可以继续深入时,可以考虑的一种剪枝方式是,向该点前进后,若剩余的时间不足以返回0点,则不必向该点DFS
该问题转换为,判断x点回到0点的距离是否超过maxTime - time,即为0点出发的最短路问题,使用Dijstra算法实现

另一方面,当图中的点较稀疏时,使用邻接矩阵遍历找边会导致时间的浪费,因此选择使用邻接表实现图的存储

class Solution {int res;public void dfs(int x, int[] values, List<int[]>[] map, int maxTime, int time, int sum, int[] dis){if(x == 0){res = Math.max(res, sum);}int n = values.length;for(int arr[] : map[x]){int y = arr[0];int t = arr[1];// 求和时增加dis,若不足返回0点则不必DFSif(time + t + dis[y] <= maxTime){int val = values[y];values[y] = 0;dfs(y, values, map, maxTime, time + t, sum + val, dis);values[y] = val;}}return ;}public int maximalPathQuality(int[] values, int[][] edges, int maxTime) {int n = values.length;// 邻接表  map[x]为x发出的边的集合List,List中的每个int[],int[0]为终点,int[1]为距离List<int[]>[] map = new ArrayList[n];for(int i = 0 ; i < n; i ++){map[i] = new ArrayList<int[]>();}for(int[] e: edges){int a = e[0];int b = e[1];int t = e[2];map[a].add(new int[]{b, t});map[b].add(new int[]{a, t});}// dijstraint inf = Integer.MAX_VALUE;int dis[] = new int [n];Arrays.fill(dis, inf);for(int [] arr: map[0]){int y = arr[0];int t = arr[1];dis[y] = t;}boolean vis[] = new boolean[n];vis[0] = true;while(true){int min = Integer.MAX_VALUE;int index = -1;for(int i = 0 ; i < n; i ++){if(!vis[i] && dis[i] < min){min = dis[i];index = i;}}if(index == -1)break;vis[index] = true;// 遍历index点发出的边for (int[] arr : map[index]) {int v = arr[0];int t = arr[1];if (!vis[v] && dis[index] + t < dis[v]) {dis[v] = dis[index] + t;}}}// DFSres = 0;int val = values[0];values[0] = 0;dfs(0, values, map, maxTime, 0, val, dis);return res;}
}
http://www.rdtb.cn/news/12373.html

相关文章:

  • 国外注册品牌 建设网站seo诊断专家
  • 网站主持人制作网站代言人百度竞价排名利弊
  • 衡水企业做网站深圳网络营销怎么推广
  • 百度xml网站地图推广方案格式模板范文
  • 自建站排名seo网络营销案例分析
  • 优化网站专题娱乐热搜榜今日排名
  • 东莞定制网站建设网站模板及源码
  • 济南网站定制自助建站系统破解版
  • wordpress 网站播放器插件下载推广普通话黑板报
  • 南京网页制作培训seo专员
  • jquery网站开发平台seo这个行业怎么样
  • 网站如何做外链系统优化
  • 用html能做企业网站吗培训机构哪家最好
  • 四川成都私人网站建设域名排名查询
  • 网站建设的目标金花站长工具
  • 网站开发参数seo是什么服
  • 个人网站可以做淘宝推广成都调查事务所
  • 厦门设计师网站网络营销的四大基础理论
  • 云南高端网站建设公司网站开发需要哪些技术
  • 网站怎么做支付系统长春网站制作推广
  • 文具网站建设规划书网站推广方案范文
  • 网站开发的可行性分析百度在西安的公司叫什么
  • 网站首页列表布局设计google关键词排名优化
  • 广州网站开发学校关键词排名优化软件
  • 武汉做网站多少钱网络平台有哪些
  • 口碑营销相关案例前端seo主要优化哪些
  • 郑州外贸网站建设公司百度小程序关键词优化
  • 唐河做网站网站建设设计
  • 太原网站建设百度app营销软件
  • 江苏专业网站建设关键词是什么意思