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

网站点击量与排名wordpress xml 导入失败

网站点击量与排名,wordpress xml 导入失败,网站开发的层级结构,扫描到网站目录然后怎么做医院设置 题目描述 设有一棵二叉树,如图: 其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接…

医院设置

题目描述

设有一棵二叉树,如图:

其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为 1 1 1。如上图中,若医院建在 1 1 1 处,则距离和 = 4 + 12 + 2 × 20 + 2 × 40 = 136 =4+12+2\times20+2\times40=136 =4+12+2×20+2×40=136;若医院建在 3 3 3 处,则距离和 = 4 × 2 + 13 + 20 + 40 = 81 =4\times2+13+20+40=81 =4×2+13+20+40=81

输入格式

第一行一个整数 n n n,表示树的结点数。

接下来的 n n n 行每行描述了一个结点的状况,包含三个整数 w , u , v w, u, v w,u,v,其中 w w w 为居民人口数, u u u 为左链接(为 0 0 0 表示无链接), v v v 为右链接(为 0 0 0 表示无链接)。

输出格式

一个整数,表示最小距离和。

样例 #1

样例输入 #1

5						
13 2 3
4 0 0
12 4 5
20 0 0
40 0 0

样例输出 #1

81

提示

数据规模与约定

对于 100 % 100\% 100% 的数据,保证 1 ≤ n ≤ 100 1 \leq n \leq 100 1n100 0 ≤ u , v ≤ n 0 \leq u, v \leq n 0u,vn 1 ≤ w ≤ 1 0 5 1 \leq w \leq 10^5 1w105


思路

将二叉树储存为一张图,存图时要存双向边。

暴力枚举每个节点作为医院,然后分别计算所有节点到这个医院的距离的加权和。

使用 DFS 遍历整张图,对于当前遍历的节点 x x x,用一个变量 s u m sum sum 记录所有已经遍历的节点到当前节点 x x x 的距离的加权和,用一个 bitset 变量 v i s vis vis 记录所有已经遍历过的节点,然后递归地遍历 x x x 的所有邻接节点,计算它们到 x x x 的距离的加权和,并将其加到 s u m sum sum 上。

为了避免重复遍历已经遍历过的节点,并方便计算节点到达医院的距离,需要在遍历之前将 v i s [ x ] vis[x] vis[x] 设为 1 1 1,在遍历之后再将其设为 0 0 0

遍历完所有的节点后,用一个变量 a n s ans ans 记录所有节点作为医院时的最小距离和,然后每次更新 a n s = min ⁡ ( a n s , s u m ) ans=\min(ans,sum) ans=min(ans,sum)。最后输出 a n s ans ans 即可。


AC代码

#include <iostream>
#include <bitset>
#include <algorithm>
#include <cstring>
#define AUTHOR "HEX9CF"
using namespace std;const int N = 1005;// 链式前向星
struct Sedge
{int to;int next;
} edge[N];
int head[N];
int cnt = 0;
int w[N];int n;
int tmp;
int sum;
int ans;bitset<N> vis;void add(int u, int v)
{if (u && v){edge[cnt].to = v;edge[cnt].next = head[u];head[u] = cnt++;}
}void dfs(int x)
{if (vis[x]){return;}sum += w[x] * vis.count();// cout << x << endl;vis[x] = 1;for (int i = head[x]; ~i; i = edge[i].next){dfs(edge[i].to);}vis[x] = 0;
}int main()
{memset(head, -1, sizeof(head));cin >> n;for (int i = 1; i <= n; i++){int a, b;cin >> w[i] >> a >> b;add(i, a);add(i, b);add(a, i);add(b, i);}for (int i = 1; i <= n; i++){sum = 0;vis.reset();dfs(i);if (1 == i){ans = sum;}else{ans = min(ans, sum);}// cout << sum << endl;}cout << ans << endl;return 0;
}
http://www.yayakq.cn/news/479052/

相关文章:

  • html网站开发实战wordpress 视频无广告
  • sever2012 网站建设保定网站建设方案优化
  • 贵州省住房和城乡建设部官方网站保卫处网站建设
  • 学校网站建设宗旨环球贸易网的服务内容
  • 空间商网站ip被攻击后换ip首饰网站建设
  • 建立网站域名的费用东莞现在属于什么风险地区
  • 网站建设的什么是网站建设的第一阶段会计网站建设
  • 南京网站关键词邢台多地划为高风险区
  • 叙述一个网站的建设过程广告位招商怎么找客户
  • php 网站建设 教学宜宾网站建设价格
  • 北京app网站建设注册商标需要什么条件
  • 台州做网站哪家公司好7一12岁手工科技小发明
  • 国内企业手机网站建设seo综合查询工具下载
  • 网站宣传推广的目的简单网站建设优化
  • 网站建设c云世家宋南南制作软件的手机软件
  • 上海网站开发公司网站开发插件
  • 自己做网站投入广州seo教程
  • 设置个网站要多少钱wordpress模板 简约
  • 腾讯广告建站工具全市网站建设情况摸底调查
  • 建设银行网站关闭闪付90设计
  • 建设网站番禺设计师网红cad图库
  • 西安网站建设ipv6牙科网站开发
  • 怎么用vps做网站免费的个人网站怎么做
  • 网站优化外包价格十大免费网站推广平台
  • 网络营销导向型企业网站建设特征wordpress 设置访客登陆
  • 济南网站建设 力推聚搜网络wordpress 中文广告位插件
  • 查询一个网站是用什么系统做的网页装修设计
  • 什么网站可以自己接工程做预算官方网站建设意义
  • 湘潭做网站价格优选磐石网络福安市代理做网站
  • 北京市建设工程审核网站买表的网站