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

网站关键词先后开发公司安全管理组织机构图

网站关键词先后,开发公司安全管理组织机构图,WordPress二级栏目代码,网站设计和内容上的不足和建议题目二 建设基站 有一棵二叉树&#xff0c;每个节点上都住了一户居民。现在要给这棵树上的居民建设基站&#xff0c;每个基站只能覆盖她所在与相邻的节点&#xff0c;请问信号覆盖这棵树最少需要建设多少个基站 #include <bits/stdc.h> using namespace std;const int …

题目二 建设基站

有一棵二叉树,每个节点上都住了一户居民。现在要给这棵树上的居民建设基站,每个基站只能覆盖她所在与相邻的节点,请问信号覆盖这棵树最少需要建设多少个基站

#include <bits/stdc++.h>
using namespace std;const int N = 3010;struct Node {int val;Node*left, *right;Node (int _val) : left(nullptr), right(nullptr){val = _val;}
};int num[N];
Node* root;
int tot = 0;
const int INF = 1e8;void build() {root = new Node(num[0]);queue<Node*> q;q.push(root);int i = 1;while (!q.empty()) {if (i == tot) break;auto node = q.front();q.pop();if (num[i] != -1) {auto l = new Node(num[i]);node->left = l;q.push(l);} else {node->left = nullptr;}i++;if (num[i] != -1) {auto r = new Node(num[i]);node->right = r;q.push(r);} else {node->right = nullptr;}i++;}
}vector<int> dfs(Node* root) {if (!root) return {0, 0, INF};auto l = dfs(root->left), r = dfs(root->right);return {min(l[1], l[2]) + min(r[1], r[2]),min(l[2] + min(r[1], r[2]), r[2] + min(l[1], l[2])),min(l[0], min(l[1], l[2])) + min(r[0], min(r[1], r[2])) + 1};
}int main() {string line;getline(cin, line);stringstream ssin(line);string n;int i = 0;while (ssin >> n) {tot++;if (n != "N") {num[i] = stoi(n);} else {num[i] = -1;}i++;}build();auto f = dfs(root);cout << min(f[1], f[2]) << endl;return 0;
}

题目三 最小代价相遇的路径规划

假定有两辆车在给定一个 n x n 的非负整数矩阵地图 grid中行驶,地图左上角位置为[0, 0]。我们简化车辆行驶的方式,每辆车可以从一个坐标行驶到相邻(上下左右)的另一个坐标,并且经过的每个位置都会产生代价,包括起始位置的代价。其中 grid[i] [j] 表示通过网格位置 [i, j] 所需的代价。矩阵中,grid[i] [j] 等于 0 表示该位置为障碍物,车辆无法通过。
两辆车约定好需要在地图中快速相遇进行货物交接。两辆车相遇的定义为:两辆车最终分别停在相邻的网格位置(上下或左右相邻),并且路径可达。 两辆车相遇所需的代价定义为:两辆车到达各自相遇位置所需代价中的较大值。 注意:路径代价包含车辆的起始位置位置的代价;行驶过程中,车辆可以停在某一个网格位置上,两辆车无需同步行驶。
求两辆车可以相遇需要的最小代价,如果无法相遇则返回 -1 。


#include <bits/stdc++.h>
using namespace std;const int N = 1010;int g[N][N];
int n;
int ca[N][N], cb[N][N];
int res = INT_MAX;
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};int main() {cin >> n;for (int i = 0; i < n; i++) for (int j = 0; j < n; j++)cin >> g[i][j];memset(ca, 0x3f, sizeof ca);memset(cb, 0x3f, sizeof cb);for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {if (!g[i][j]) continue;if (!i && !j) ca[i][j] = g[i][j];else {if (i) ca[i][j] = min(ca[i][j], ca[i-1][j] + g[i][j]);if (j) ca[i][j] = min(ca[i][j], ca[i][j-1] + g[i][j]);}}}for (int i = n - 1; i >= 0; i--) {for (int j = n-1; j >= 0; j--) {if (!g[i][j]) continue;if (i == n-1 && j == n-1) cb[i][j] = g[i][j];else {if (i != n-1) cb[i][j] = min(cb[i][j], cb[i+1][j] + g[i][j]);if (j != n-1) cb[i][j] = min(cb[i][j], cb[i][j+1] + g[i][j]);}}}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {for (int t = 0; t < 4; t++) {int x = i + dx[t], y = j + dy[t];if (x < 0 || x >= n || y < 0 || y >= n) continue;res = min(res, max(ca[i][j], cb[x][y]));}}}if (res >= 0x3f) cout << -1 << endl;else cout << res << endl;return 0;
}
http://www.dtcms.com/a/603276.html

相关文章:

  • 网站建设域名什么意思wordpress插件点不开
  • wordpress怎样建立多站点手机百度账号登录个人中心
  • 2025-11-12[第三大的数、将x减到0的最小操作数]
  • 基层建设刊物网站建筑工程网签备案合同
  • 强化学习基础概念与核心算法全解析
  • 解释型与编译型编程语言的区别 | 深入了解两者的工作原理与优劣
  • 人工智能网站应怎么做长春市长春网站建设哪家好
  • 建宣传网站北京营销策划公司有哪些
  • 网站系统开发毕业设计网站建设ppt百度文库
  • 2.2 前向传播与反向传播:深度学习的核心机制全解析
  • 山东省建设厅官方网站怎么样如何创建网站?
  • UrealEngine-5.2.1源码-AbilitySystemComponent.h
  • FPGA教程系列-Vivado中FIFO的简单仿真分析
  • 网站开发需要什么工具公司介绍怎么写范本
  • 网站建设责任书广东省建设厅官方网站网址
  • WebView 远程调试全指南,跨端真机调试的完整解决方案
  • wordpress企业网站 教程wordpress站点标题
  • 网站建设的职责dedecms 金融类网站模板
  • STM32的电子钟功能实现
  • 安徽网站建设微信开发注册公司官网入口
  • 网页设计与网站开发教程做网站图片链接到天猫
  • 太阳光模拟器太空环境应用:光学载荷的杂散光性能测试
  • 公司创建一个网站需要多少钱外贸网络营销服务
  • 建设英文外贸网站网站开发的环境
  • 免费空间建站网站推荐网站建设管理维护责任书格式
  • 淘宝客一定要建立网站中国机械加工网怎么样
  • 基于Java的心理压力检测系统【附源码】
  • wordpress电影站主题百度网网页版登录
  • 在Scrapy中如何处理API分页及增量爬取
  • 金坛企业网站建设公司wordpress 保持空格