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

公司网站建设外包流程图用ps怎么做网站

公司网站建设外包流程图,用ps怎么做网站,网站开发的微端,阳江网红打卡地方🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为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://www.yayakq.cn/news/717212/

相关文章:

  • 建站宝盒手机版下载常德网站建设培训机构
  • 用jsp sqlserver做的购物网站南通高端网站
  • 适合0基础网站开发软件泰安可信赖的企业建站公司
  • 网站页面头部设计说明宜兴市网站建设
  • 网站推广策划方案大数据精准获客网站后台版权
  • 网站建设的研发支出费用化最正规二手手表平台
  • 网站建设搜狐帝国cms如何做微网站
  • 网站制作如皋云虚拟主机可以做多少个网站
  • 智能网站建设哪家效果好如何加强企业网站建设 论文6
  • 做网站页面的软件深入浅出wordpress
  • 广东建的电商网站叫啥微信服务商平台官网
  • 怎么做企业网站仿站唐山市住建局官方网站
  • 厦门营销型网站建设wp做购物网站
  • 西维科技做网站怎么样四大门户网站排名
  • 现在淘客做网站还行吗gta买办公室网站建设中
  • 网站发展规划如何设计一个好网站
  • 提升网站安全珠海舒讯网站建设
  • 网站开发的技术手段有哪些wordpress 房产中介
  • 最好的自助建站系统郏县网站制作哪家公司好
  • 宁夏做网站找谁石家庄网站托管
  • 防蚊手环移动网站建设哪个网站建设商招代理
  • 天津市做网站的公司有哪些网站建设季度考核评价工作总结
  • 学校信息门户网站建设微信小程序界面设计模板
  • 旅游网站建设目的icp许可证对网站的要求
  • 怎么在阿里云建立网站网页小游戏平台
  • 关键词挖掘机爱站网网页设计与网站建设论述题
  • 做网站云服务器2m宽带够用吗wordpress主页居中
  • 超能力联盟网站wordpress加上vip解析
  • 跨境电商网站建设流程成都市公服wordpress 经常打不开
  • 专业制作网站费用如何在yahoo上做网站