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

长乐福州网站建设交换神器

长乐福州网站建设,交换神器,长沙做php的网站建设,网络销售应该注册什么公司1 打印菱形 常规方法的核心思想是通过控制空格和星号(*)的数量来构造菱形的每一行。 上半部分:逐行增加星号数量,减少空格数量。下半部分:逐行减少星号数量,增加空格数量。 1.2 图解 假设我们要打印一个…

1 打印菱形

常规方法的核心思想是通过控制空格和星号(*)的数量来构造菱形的每一行。

  • 上半部分:逐行增加星号数量,减少空格数量。
  • 下半部分:逐行减少星号数量,增加空格数量。

1.2 图解

假设我们要打印一个边长为5的菱形:

    ****************
*************************
  • 第1行:4个空格 + 1个星号。
  • 第2行:3个空格 + 3个星号。
  • 第3行:2个空格 + 5个星号。
  • 第4行:1个空格 + 7个星号。
  • 第5行:0个空格 + 9个星号。
  • 第6行开始重复第4到第1行的过程。

1.3 实现代码(chat)

#include <iostream>
using namespace std;void printDiamond(int n) {// 打印上半部分for (int i = 1; i <= n; ++i) {// 打印空格for (int j = 1; j <= n - i; ++j) {cout << " ";}// 打印星号for (int j = 1; j <= 2 * i - 1; ++j) {cout << "*";}cout << endl;}// 打印下半部分for (int i = n - 1; i >= 1; --i) {// 打印空格for (int j = 1; j <= n - i; ++j) {cout << " ";}// 打印星号for (int j = 1; j <= 2 * i - 1; ++j) {cout << "*";}cout << endl;}
}int main() {int n;cout << "input:";cin >> n;printDiamond(n);return 0;
}

2 曼哈顿距离法打印菱形

曼哈顿距离法利用二维坐标系中的点到中心点的距离来判断是否打印星号。具体步骤如下:

  • 将菱形的中心设为原点 (0, 0)
  • 对于每个点 (x, y),如果其曼哈顿距离(即 ∣ x ∣ + ∣ y ∣ |x| + |y| x+y)小于等于给定的半径 r r r,则打印星号;否则打印空格。

曼哈顿距离公式为:
d = ∣ x ∣ + ∣ y ∣ d = |x| + |y| d=x+y

  • 中心点为 (0, 0)
  • 每个点的曼哈顿距离满足 ∣ x ∣ + ∣ y ∣ ≤ r |x| + |y| \leq r x+yr,其中 r = 4 r=4 r=4

cpp代码

#include <iostream>
using namespace std;
void solve(int n) {int r = n - 1; // 菱形的半径for (int y = -r; y <= r; ++y) {for (int x = -r; x <= r; ++x) {if (abs(x) + abs(y) <= r) {cout << "*";} else {cout << " ";}}cout << endl;}
}
int main() {int n;cin >> n;solve(n);return 0;
}
    ** **   **     *
*       **     **   ** **

打印空心菱形,只打印等于半径的位置即可。

#include <iostream>
using namespace std;
void solve(int n) {int r = n - 1; // 菱形的半径for (int y = -r; y <= r; ++y) {for (int x = -r; x == r; ++x) {if (abs(x) + abs(y) <= r) {cout << "*";} else {cout << " ";}}cout << endl;}
}
int main() {int n;cin >> n;solve(n);return 0;
}

3 一些场景

曼哈顿距离(Manhattan Distance)是计算二维平面中两点之间距离的一种方法,具体的定义如下:
d = ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ d = |x_1 - x_2| + |y_1 - y_2| d=x1x2+y1y2

路径规划与网格图问题
曼哈顿距离常用于网格图中的路径规划问题,特别是在不允许斜向移动的情况下。例如:在一个 n × m n \times m n×m 的网格图中,每个格子可能有障碍物或空地。从起点到终点的最短路径是多少?

  • 使用BFS结合曼哈顿距离作为启发式函数。
  • 曼哈顿距离可以估算当前点到目标点的最小步数,从而优化搜索效率。

棋盘问题
在一个 n × n n \times n n×n 的棋盘上,骑士从起点移动到终点所需的最少步数是多少?

  • 使用 BFS 搜索所有可能的移动路径。
  • 曼哈顿距离可以作为启发式函数,估算当前点到目标点的距离,从而优化搜索方向。

城市配送问题

给定一个 n × n n \times n n×n 的网格图,某些格子上有货物需求,另一些格子上有配送中心。每个配送中心只能服务一定范围内的需求点。求所有需求点到最近配送中心的总曼哈顿距离。

#include <iostream>
#include <queue>
#include <vector>
using namespace std;const int INF = 1e9;
const int dirs[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};int minTotalDeliveryDistance(int n, vector<pair<int, int>>& depots, vector<pair<int, int>>& demands) {vector<vector<int>> distance(n, vector<int>(n, INF));queue<pair<int, int>> q;for (auto& depot : depots) {int x = depot.first, y = depot.second;distance[x][y] = 0;q.push({x, y});}while (!q.empty()) {auto [x, y] = q.front();q.pop();for (int i = 0; i < 4; ++i) {int nx = x + dirs[i][0], ny = y + dirs[i][1];if (nx >= 0 && nx < n && ny >= 0 && ny < n && distance[nx][ny] > distance[x][y] + 1) {distance[nx][ny] = distance[x][y] + 1;q.push({nx, ny});}}}long long totalDistance = 0;for (auto& demand : demands) {int x = demand.first, y = demand.second;if (distance[x][y] == INF) return -1; // 如果无法到达totalDistance += distance[x][y];}return totalDistance;
}int main() {int n = 5;vector<pair<int, int>> depots = {{0, 0}, {4, 4}};vector<pair<int, int>> demands = {{2, 2}, {3, 3}};cout << "ret: " << minTotalDeliveryDistance(n, depots, demands) << endl;return 0;
}
http://www.dtcms.com/a/553103.html

相关文章:

  • Unity之OpenXR+XR Interaction Toolkit交互过滤器Filtering
  • MATLAB 模拟台风路径和强度变化
  • 第3讲:创建并运行你的第一个Flutter应用
  • 使用LangChain+LangGraph自定义AI工作流,实现音视频字幕生成工具
  • 【Matlab】基于模型预测控制(MPC)与滚动时域估计(MHE)集成的目标点镇定研究
  • 基于MATLAB的粒子群算法(PSO)优化libsvm参数完整实现
  • PostgreSQL 的表继承与分区
  • 神经网络之矩阵可逆
  • 笔记:现代操作系统:原理与实现(7)
  • Java-164 MongoDB 认证与权限实战:单实例与分片集群 整体认证配置实战 最小化授权/错误速查/回滚剧本
  • 北京公司的网站建设きょこんきょうしゃ在线
  • 第4讲:理解Flutter的灵魂 - “Everything is a Widget”
  • 驱动精灵、驱动人生、NVIDIA专业显卡驱动、360驱动大师、联想乐驱动,电脑驱动修复工具大全
  • Spring Boot 4与Spring Framework 7:云原生Java的全新革命与企业级实战
  • 虚拟机在云原生与智能时代的未来应用场景探析
  • 电脑如何设置wifi密码,详细步骤教程指南
  • C#面试题及详细答案120道(51-60)-- LINQ与Lambda
  • 北京网站备案的地址ps怎么做网站分隔线
  • DLSS是什么
  • web网页开发,旧版在线%考试,判题%系统demo,基于python+flask+随机分配考试题目,基于开发语言python,数据库mysql
  • 【C++】哈希表封装实现 unordered_map 和 unordered_set
  • 353-Spring AI Alibaba ARK 多模型示例
  • 安徽海绵城市建设协会网站ip查询网站备案查询系统
  • MVVM架构与ICommand核心笔记
  • Web后端开发学习总结
  • 萍乡做网站的公司有哪些门户网站建设方案ppt 百度文库
  • Wireshark抓包教程:获取网站登录凭证
  • 销售驱动的黄昏:医药商业化模式的效率悖论与转型必然
  • 【mysql】锁机制 - 2.行锁间隙锁临键锁
  • 做网站制作需要多少钱网络设计公司有哪些