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

中法电商网站建设无限个网站虚拟空间

中法电商网站建设,无限个网站虚拟空间,做养生产品哪个网站好,全球商业网龙龙是“饱了呀”外卖软件的注册骑手,负责送帕特小区的外卖。帕特小区的构造非常特别,都是双向道路且没有构成环 —— 你可以简单地认为小区的路构成了一棵树,根结点是外卖站,树上的结点就是要送餐的地址。 每到中午 12 点&#…

龙龙是“饱了呀”外卖软件的注册骑手,负责送帕特小区的外卖。帕特小区的构造非常特别,都是双向道路且没有构成环 —— 你可以简单地认为小区的路构成了一棵树,根结点是外卖站,树上的结点就是要送餐的地址。

每到中午 12 点,帕特小区就进入了点餐高峰。一开始,只有一两个地方点外卖,龙龙简单就送好了;但随着大数据的分析,龙龙被派了更多的单子,也就送得越来越累……

看着一大堆订单,龙龙想知道,从外卖站出发,访问所有点了外卖的地方至少一次(这样才能把外卖送到)所需的最短路程的距离到底是多少?每次新增一个点外卖的地址,他就想估算一遍整体工作量,这样他就可以搞明白新增一个地址给他带来了多少负担。

输入格式:

输入第一行是两个数 N 和 M (2≤N≤105, 1≤M≤105),分别对应树上节点的个数(包括外卖站),以及新增的送餐地址的个数。

接下来首先是一行 N 个数,第 i 个数表示第 i 个点的双亲节点的编号。节点编号从 1 到 N,外卖站的双亲编号定义为 −1。

接下来有 M 行,每行给出一个新增的送餐地点的编号 Xi​。保证送餐地点中不会有外卖站,但地点有可能会重复。

为了方便计算,我们可以假设龙龙一开始一个地址的外卖都不用送,两个相邻的地点之间的路径长度统一设为 1,且从外卖站出发可以访问到所有地点。

注意:所有送餐地址可以按任意顺序访问,且完成送餐后无需返回外卖站

输出格式:

对于每个新增的地点,在一行内输出题目需要求的最短路程的距离。

输入样例:

7 4
-1 1 1 1 2 2 3
5
6
2
4

输出样例:

2
4
4
6

画几次图模拟一下过程,可以发现,如果要回到起点的话,每条边要走2次,不回起点的话,就可以去掉最长的那条路。

问题分析

龙龙需要从外卖站出发,访问所有订单地址至少一次,求最短路径。关键点:

  1. 树结构:小区道路构成一棵树,外卖站是根节点。

  2. 动态更新:每次新增订单地址后,计算访问所有地址的最短路径。

  3. 无需返回:送完最后一个订单后无需返回外卖站。

关键观察

  1. 每条边最多走两次

    • 如果最终返回外卖站,每条边会被走两次(一来一回)。

    • 如果不返回,可以省去从最深节点返回的路径。

  2. 最短路径公式

    • 总路径 = 2 × 总边数 - 最长深度

      • 2 × 总边数:所有边都往返走一次。

      • - 最长深度:最深节点不用返回,节省的路径。

算法设计

  1. 预处理

    • 使用 DFS 或 BFS 计算每个节点到根节点的深度(距离)。

    • 使用记忆化搜索优化重复计算。

  2. 动态维护

    • sum:当前所有订单地址构成的子树的边数。

    • mx:当前所有订单地址中的最大深度。

  3. 查询处理

    • 每新增一个地址,更新 sum 和 mx

    • 输出 2 × sum - mx

代码如下:

#include <iostream>
#include <vector>
#include <map>
using namespace std;vector<int> dist;
vector<int> fa;
int sum = 0, mx = 0;int dfs(int r) {if (fa[r] == -1 || dist[r] > 0) {return dist[r];} //记忆化搜索sum++; //说明是一条新的边,边总数+1dist[r] = dfs(fa[r]) + 1;return dist[r];
}int main() {int n, m, x;cin >> n >> m;fa = vector<int>(n + 1);dist = vector<int>(n + 1);for (int i = 1; i <= n; i++) {cin >> fa[i];}while (m--) {cin >> x;mx = max(mx, dfs(x));cout << sum * 2 - mx << endl;//可以看出规律每条边都恰好走两边//最后不用返回就见一条最大的边}return 0;
}


文章转载自:

http://GtF9kisO.nssjy.cn
http://1Y7a7QE2.nssjy.cn
http://wnSwQhmE.nssjy.cn
http://tdbhOIYz.nssjy.cn
http://X4mEfQQT.nssjy.cn
http://soDlqZmn.nssjy.cn
http://5vHAXCpc.nssjy.cn
http://QOCE2gw8.nssjy.cn
http://ic7Qb6fp.nssjy.cn
http://pCvLzQnZ.nssjy.cn
http://P1xriinU.nssjy.cn
http://eHWFbsFR.nssjy.cn
http://PYTvevJH.nssjy.cn
http://yq3FQPih.nssjy.cn
http://5vCt5jhs.nssjy.cn
http://QfeiNWEA.nssjy.cn
http://V0gZTi0O.nssjy.cn
http://YZuv1hXi.nssjy.cn
http://amoZGrJr.nssjy.cn
http://f0kcYEMx.nssjy.cn
http://UTk630Cr.nssjy.cn
http://kjnt8XaV.nssjy.cn
http://kxt5ceZo.nssjy.cn
http://pErGD5m6.nssjy.cn
http://BHBVlXLF.nssjy.cn
http://Mzc4L45o.nssjy.cn
http://LzT1jTgR.nssjy.cn
http://1s0DcxMG.nssjy.cn
http://OD3VugP3.nssjy.cn
http://9NWPgrZY.nssjy.cn
http://www.dtcms.com/wzjs/638199.html

相关文章:

  • 机械营销型网站如何推广网站方法
  • 电子商务网站源码下载展馆设计费取费标准一览表
  • 当当网电子商务网站建设青浦赵巷网站建设
  • 私自建立网站网站判决书如何申请商业服务器
  • 长沙网站制作公司有哪些企业做app好还是网站好
  • 如何升级网站后台wordpress教育模板
  • 做商务网站简述网站建设过程步骤
  • 卫浴网站建设网站建设技术人员工作
  • 网站刚做好怎么做优化电商网站成本
  • 南京建设机械网站商城网站框架
  • 一键网站建设wordpress 调用浏览数
  • 深圳建立企业网站c 可以做网站
  • 建设银行网站登录宣传册设计与制作免费
  • 多种专业网站建设广东网站备案进度查询
  • 移动端网站开发哪家好ppt怎么做
  • 网站备案百度站长提交铁建设文件在什么网站下载
  • 如何做招聘网站的数据分析珠海网站关键词推广
  • 坊子营销型网站建设电商网站建设的相关内容
  • discuz 做论坛与网站视频制作培训机构推荐
  • 微信官方网站建设怎么做自动发卡网站
  • 手绘教学网站有没有可以做网站动图的软件
  • 做翻译 网站吗做电影网站需要什么软件
  • 网站被网站建设的人控制了怎么做广告图片设计
  • windows 2008 iis添加网站企业网站建设中期报告模板
  • 服务预约网站怎么建设贵州建设厅考试网站二建成绩查询
  • 做可以上传文件的网站青海做网站好的公司
  • 南通做网站公司网站建设对电子商务的意义
  • 网站项目上线流程网站 tag标签
  • 兰州网站建设和推广安阳 做网站
  • 英文网站的外部链接 建设广州网站优化工具服务