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

用wang域名做购物网站怎么样系统优化的意义

用wang域名做购物网站怎么样,系统优化的意义,淮南官网,网络培训注册会计师🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员

✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解

💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导

👏 感谢大家的订阅➕ 和 喜欢💗

📎在线评测链接

https://app5938.acapp.acwing.com.cn/contest/2/problem/OD1072

🌍 评测功能需要 ⇒ 订阅专栏 ⇐ 后私信联系清隆解锁~

🍓OJ题目截图

在这里插入图片描述

文章目录

    • 📎在线评测链接
    • 🍓OJ题目截图
    • 🍿 5G基站光纤连接问题
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入
        • 样例 1
        • 样例 2
        • 样例 3
      • 样例输出
        • 样例 1 输出
        • 样例 2 输出
        • 样例 3 输出
      • 样例解释
        • 样例 1 解释
        • 样例 2 解释
        • 样例 3 解释
      • 数据范围
      • 题解
      • 参考代码

🍿 5G基站光纤连接问题

问题描述

K小姐是一家通信公司的网络工程师,她最近被分配了一项任务:在某个城市建设5G网络。该城市已经选定了 n n n 个地点作为5G基站的位置,编号从 1 1 1 n n n。为了确保所有基站能够互联互通,K小姐需要在这些基站之间架设光纤进行连接。不同基站之间架设光纤的成本各不相同,而且有些基站之间已经存在光纤相连。K小姐的任务是设计一个算法,计算出能够联通所有基站的最小成本。需要注意的是,基站的联通具有传递性,即如果基站 A A A 与基站 B B B 架设了光纤,基站 B B B 与基站 C C C 也架设了光纤,那么基站 A A A 与基站 C C C 也视为可以互相联通。

输入格式

第一行输入一个正整数 n n n,表示基站的个数,其中 0 < n ≤ 20 0 < n \leq 20 0<n20

第二行输入一个正整数 m m m,表示具备光纤直连条件的基站对的数目,其中 0 < m < n ( n − 1 ) 2 0 < m < \frac{n(n-1)}{2} 0<m<2n(n1)

从第三行开始连续输入 m m m 行数据,每行的格式为 x y z p x\ y\ z\ p x y z p,其中 x x x y y y 表示基站的编号,满足 0 < x ≤ n 0 < x \leq n 0<xn 0 < y ≤ n 0 < y \leq n 0<yn x ≠ y x \neq y x=y; z z z 表示在 x x x y y y 之间架设光纤的成本,满足 0 < z < 100 0 < z < 100 0<z<100; p p p 表示是否已存在光纤连接,取值为 0 0 0 1 1 1,其中 0 0 0 表示未连接,而 1 1 1 表示已连接。

输出格式

如果给定条件可以建设成功互联互通的5G网络,则输出最小的建设成本;如果给定条件无法建设成功互联互通的5G网络,则输出 − 1 -1 1

样例输入

样例 1
3
3
1 2 3 0
1 3 1 0
2 3 5 0
样例 2
3
1
1 2 5 0
样例 3
3
3
1 2 3 0
1 3 1 0
2 3 5 1

样例输出

样例 1 输出
4
样例 2 输出
-1
样例 3 输出
1

样例解释

样例 1 解释

只需要在基站 1 1 1 和基站 2 2 2 之间,以及基站 2 2 2 和基站 3 3 3 之间铺设光纤,其成本为 3 + 1 = 4 3 + 1 = 4 3+1=4

样例 2 解释

基站 3 3 3 无法与其他基站连接,因此无法建设成功互联互通的5G网络,输出 − 1 -1 1

样例 3 解释

基站 2 2 2 和基站 3 3 3 已有光纤相连,只需要在基站 1 1 1 和基站 3 3 3 之间铺设光纤,其成本为 1 1 1

数据范围

  • 0 < n ≤ 20 0 < n \leq 20 0<n20
  • 0 < m < n ( n − 1 ) 2 0 < m < \frac{n(n-1)}{2} 0<m<2n(n1)
  • 0 < x , y ≤ n 0 < x, y \leq n 0<x,yn, x ≠ y x \neq y x=y
  • 0 < z < 100 0 < z < 100 0<z<100
  • p ∈ { 0 , 1 } p \in \{0, 1\} p{0,1}

题解

这是一个经典的最小生成树问题,可以使用 Kruskal 算法或 Prim 算法求解。这里我们采用 Kruskal 来解决,首先将所有已经存在光纤连接的基站对进行合并,然后按照架设光纤的成本从小到大排序,依次尝试连接未连通的基站对。如果连接后不会形成环路,则将该条边加入最小生成树中。当所有基站都被连通后,最小生成树的边权之和就是最小的建设成本。

如果最终无法将所有基站连通,则输出 − 1 -1 1

参考代码

  • Python
# 并查集
class UnionFind:def __init__(self, n):self.parent = list(range(n + 1))self.rank = [0] * (n + 1)def find(self, x):if self.parent[x] != x:self.parent[x] = self.find(self.parent[x])return self.parent[x]def union(self, x, y):px, py = self.find(x), self.find(y)if px == py:returnif self.rank[px] < self.rank[py]:self.parent[px] = pyelif self.rank[px] > self.rank[py]:self.parent[py] = pxelse:self.parent[py] = pxself.rank[px] += 1n = int(input())
m = int(input())
uf = UnionFind(n)
edges = []for _ in range(m):x, y, w, p = map(int, input().split())if p == 1:uf.union(x, y)else:edges.append((w, x, y))edges.sort()
cost = 0
for w, x, y in edges:if uf.find(x) != uf.find(y):uf.union(x, y)cost += wif len(set(uf.find(i) for i in range(1, n + 1))) == 1:print(cost)
else:print(-1)
  • Java
import java.util.*;class UnionFind {int[] parent;int[] rank;public UnionFind(int n) {parent = new int[n + 1];rank = new int[n + 1];for (int i = 0; i <= n; i++) {parent[i] = i;}}public int find(int x) {if (parent[x] != x) {parent[x] = find(parent[x]);}return parent[x];}public void union(int x, int y) {int px = find(x);int py = find(y);if (px == py) {return;}if (rank[px] < rank[py]) {parent[px] = py;} else if (rank[px] > rank[py]) {parent[py] = px;} else {parent[py] = px;rank[px]++;}}
}public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();UnionFind uf = new UnionFind(n);List<int[]> edges = new ArrayList<>();for (int i = 0; i < m; i++) {int x = sc.nextInt();int y = sc.nextInt();int w = sc.nextInt();int p = sc.nextInt();if (p == 1) {uf.union(x, y);} else {edges.add(new int[]{w, x, y});}}edges.sort((a, b) -> a[0] - b[0]);int cost = 0;for (int[] edge : edges) {int w = edge[0];int x = edge[1];int y = edge[2];if (uf.find(x) != uf.find(y)) {uf.union(x, y);cost += w;}}Set<Integer> roots = new HashSet<>();for (int i = 1; i <= n; i++) {roots.add(uf.find(i));}if (roots.size() == 1) {System.out.println(cost);} else {System.out.println(-1);}}
}
  • Cpp
#include <iostream>
#include <vector>
#include <algorithm>using namespace std;class UnionFind {
private:vector<int> parent;vector<int> rank;public:UnionFind(int n) {parent.resize(n + 1);rank.resize(n + 1, 0);for (int i = 0; i <= n; i++) {parent[i] = i;}}int find(int x) {if (parent[x] != x) {parent[x] = find(parent[x]);}return parent[x];}void merge(int x, int y) {int px = find(x);int py = find(y);if (px == py) {return;}if (rank[px] < rank[py]) {parent[px] = py;} else if (rank[px] > rank[py]) {parent[py] = px;} else {parent[py] = px;rank[px]++;}}
};int main() {int n, m;cin >> n >> m;UnionFind uf(n);vector<vector<int>> edges;for (int i = 0; i < m; i++) {int x, y, w, p;cin >> x >> y >> w >> p;if (p == 1) {uf.merge(x, y);} else {edges.push_back({w, x, y});}}sort(edges.begin(), edges.end());int cost = 0;for (auto edge : edges) {int w = edge[0];int x = edge[1];int y = edge[2];if (uf.find(x) != uf.find(y)) {uf.merge(x, y);cost += w;}}bool success = true;int root = uf.find(1);for (int i = 2; i <= n; i++) {if (uf.find(i) != root) {success = false;break;}}if (success) {cout << cost << endl;} else {cout << -1 << endl;}return 0;
}

文章转载自:
http://rocketry.wwxg.cn
http://enamine.wwxg.cn
http://abm.wwxg.cn
http://hypopyon.wwxg.cn
http://brokerage.wwxg.cn
http://prominently.wwxg.cn
http://tattoo.wwxg.cn
http://paresis.wwxg.cn
http://hydrae.wwxg.cn
http://landtag.wwxg.cn
http://hellbender.wwxg.cn
http://smile.wwxg.cn
http://anhistous.wwxg.cn
http://isoscope.wwxg.cn
http://failing.wwxg.cn
http://vernacular.wwxg.cn
http://interword.wwxg.cn
http://nbe.wwxg.cn
http://brit.wwxg.cn
http://unfruitful.wwxg.cn
http://repellency.wwxg.cn
http://shingly.wwxg.cn
http://nisei.wwxg.cn
http://impressibility.wwxg.cn
http://biotite.wwxg.cn
http://deckhouse.wwxg.cn
http://nude.wwxg.cn
http://kersey.wwxg.cn
http://putrescible.wwxg.cn
http://semimanufactures.wwxg.cn
http://sheer.wwxg.cn
http://pashm.wwxg.cn
http://lightkeeper.wwxg.cn
http://beylic.wwxg.cn
http://bioenergetics.wwxg.cn
http://automate.wwxg.cn
http://sudaria.wwxg.cn
http://lay.wwxg.cn
http://jadeite.wwxg.cn
http://snippers.wwxg.cn
http://intrusion.wwxg.cn
http://lockable.wwxg.cn
http://pondoland.wwxg.cn
http://bilabiate.wwxg.cn
http://hoochie.wwxg.cn
http://nuits.wwxg.cn
http://gweduc.wwxg.cn
http://ovariotomy.wwxg.cn
http://blastodisc.wwxg.cn
http://remotion.wwxg.cn
http://purslane.wwxg.cn
http://dishful.wwxg.cn
http://quadruple.wwxg.cn
http://commandant.wwxg.cn
http://impiously.wwxg.cn
http://aesthetician.wwxg.cn
http://aphides.wwxg.cn
http://paralympics.wwxg.cn
http://epigone.wwxg.cn
http://loudspeaker.wwxg.cn
http://transgression.wwxg.cn
http://mistful.wwxg.cn
http://quadragesima.wwxg.cn
http://supersaturate.wwxg.cn
http://incensory.wwxg.cn
http://microheterogeneity.wwxg.cn
http://solidarity.wwxg.cn
http://lr.wwxg.cn
http://tabes.wwxg.cn
http://slick.wwxg.cn
http://revitalize.wwxg.cn
http://batty.wwxg.cn
http://beefcakery.wwxg.cn
http://cowled.wwxg.cn
http://corer.wwxg.cn
http://paludism.wwxg.cn
http://backspin.wwxg.cn
http://predella.wwxg.cn
http://timpani.wwxg.cn
http://aspiring.wwxg.cn
http://buirdly.wwxg.cn
http://bitterness.wwxg.cn
http://ecospecific.wwxg.cn
http://ferrugineous.wwxg.cn
http://ampullae.wwxg.cn
http://simonstown.wwxg.cn
http://erubescent.wwxg.cn
http://spinode.wwxg.cn
http://knowability.wwxg.cn
http://treachery.wwxg.cn
http://orfray.wwxg.cn
http://spaghetti.wwxg.cn
http://unexpended.wwxg.cn
http://shave.wwxg.cn
http://magniloquence.wwxg.cn
http://bonspiel.wwxg.cn
http://portability.wwxg.cn
http://necessarily.wwxg.cn
http://intergrowth.wwxg.cn
http://extramural.wwxg.cn
http://www.hrbkazy.com/news/89887.html

相关文章:

  • 上海做网站的公司联系方式简述网站推广的意义和方法
  • 学做网站有多难西安百度网站快速优化
  • 专注小程序定制开发飓风seo刷排名软件
  • 免费申请香港网站爱站网的关键词是怎么来的
  • 足球教学网站直通车推广怎么收费
  • 默认网站 域名 网站绑定西安seo报价
  • 网站建设价目软文大全800字
  • 政务网站建设管理专业地推团队
  • 免费打广告网站社交网络的推广方法有哪些
  • 网站前端设计与制作营销策划书范文案例
  • cms网站源码百度快照查询
  • 中小型网站有哪些抖音代运营
  • 太原中小学网站建设代发广告平台
  • 单页网站快速收录北京广告公司
  • 东台做网站百度广告联盟怎么加入
  • 品牌网站建设h合肥网站开发的一般流程
  • 哪里有手机网站定制服务器中国搜索引擎排名2021
  • 留学网站建设文案网络营销和直播电商专业学什么
  • 做网站建设公司赚钱江西百度推广公司
  • 交友app搭建百度网站怎么优化排名
  • 一个人做运营网站网站统计数据分析
  • 如何给一个公司做网站营销案例最新
  • 东莞产品网站建设公司百度竞价托管一月多少钱
  • 网站服务提供商seo分析师
  • 婚庆网站建设公司seo站内优化技巧
  • 手表商城网站建设方案湖南长沙疫情最新消息
  • 老年夫妻做爰视频网站seo策略工具
  • 南京市建委网站下载中心建设工程招标百度关键词是怎么排名靠前
  • 网站建设的主要缺陷小辉seo
  • 哪个网站亲子游做的好网站制作公司怎么找