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

题解:CF1621D The Winter Hike

首先,我们要把朋友们安全地移动到右下角 \(n ^ 2\) 个格子,那么铲去这 \(n ^ 2\) 个格子的积雪所花费的代价是无法避免的。然后我们考虑把朋友们移动到这些格子的路程当中所花费的代价该如何最小。我们可以发现,只要有一个朋友到达右下角 \(n ^ 2\) 个格子之一,剩下的朋友可以沿着第一个到达的小朋友所走的路径到达。那么问题就转化为一个朋友从左上角 \(n ^ 2\) 个格子中任意一个格子出发,到达右下角 \(n ^ 2\) 个格子中的任意一个格子的最小花费。可以发现这个朋友只能从右上角初始格子的四个顶点出发,不然答案会变劣。我们就可以分别讨论他要前往哪一个格子。

让我们来讨论一下:

  • 从坐标为 \((1, 1)\) 的格子出发
    • 向左走一步到达格子 \((1, 2n)\),再向上走一步到达格子 \((2n, 2n)\)
    • 向上走一步到达格子 \((2n, 1)\),再向左走一步到达格子 \((2n, 2n)\)
  • 从坐标为 \((1, n)\) 的格子出发
    • 向右走一步到达格子 \((1 , n + 1)\),再向上走一步到达格子 \((2n, n + 1)\)
    • 向上走一步到达格子 \((2n, n)\),再向右走一步到达格子 \((2n, n + 1)\)
  • 从坐标为 \((n, 1)\) 的格子出发
    • 向左走一步到达格子 \((n, 2n)\),再向下走一步到达格子 \((n + 1, 2n)\)
    • 向下走一步到达格子 \((n + 1, 1)\),再向右走一步到达格子 \((n + 1, 2n)\)
  • 从坐标为 \((n, n)\) 的格子出发
    • 向右走一步到达格子 \((n, n + 1)\),再向下走一步到达格子 \((n + 1, n + 1)\)
    • 向下走一步到达格子 \((n + 1, n)\),再向右走一步到达格子 \((n + 1, n + 1)\)

所以,我们只需计算以上 \(8\) 种情况的花费,然后取最小值即可。相当于对格子 \((1, 2n)\)、格子 \((2n, 1)\)、格子 \((1 , n + 1)\)、格子 \((2n, n)\)、格子 \((n, 2n)\)、格子 \((n + 1, 1)\)、格子 \((n, n + 1)\) 和格子 \((n + 1, n)\) 取最小值。然后再加上清理右下角 \(n ^ 2\) 个格子的积雪的花费即可。

接下来是代码环节:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int t, n, c[505][505], sum;
signed main() {ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> t;while (t --) {sum = 0;cin >> n;for (int i = 1; i <= n * 2; i ++) {for (int j = 1; j <= n * 2; j ++) {cin >> c[i][j];}}for (int i = n + 1; i <= n * 2; i ++) {for (int j = n + 1; j <= n * 2; j ++) {sum += c[i][j];}}sum += min(c[1][n + 1], min(c[1][n * 2], min(c[n + 1][1], min(c[n * 2][1], min(c[n][n + 1], min(c[n][n * 2], min(c[n * 2][n], c[n + 1][n])))))));cout << sum << "\n";}return 0;
}
http://www.jsqmd.com/news/744310/

相关文章:

  • Tiny11Builder:彻底告别Windows 11臃肿系统的终极解决方案
  • 开发者AI实战指南:从工具使用到工作流构建的深度解析
  • 基于Astro+Starlight构建高性能开源项目文档站:OpenClaw Wiki技术解析
  • 从‘套娃调用’到安全策略:深入理解HTTP 403 Forbidden的常见触发场景与避坑指南
  • 长期使用中感受到的 Taotoken API 服务稳定性与路由可靠性
  • 题解:CF2050C Uninteresting Number
  • 题解:CF2050D Digital string maximization
  • 英雄联盟智能伙伴Akari:告别繁琐操作,享受游戏乐趣的终极解决方案
  • FontForge终极指南:免费开源字体编辑器的5个核心功能与快速入门
  • 揭秘Windows快捷键失效之谜:Hotkey Detective深度体验指南
  • 树莓派5 PCIe转2.5GbE网卡方案解析与实战
  • Go-CQHTTP终极指南:5分钟搭建你的高性能QQ机器人
  • 3分钟搞定TrollStore安装:TrollInstallerX智能越狱工具深度解析
  • 如何让微信聊天记录真正属于你?WeChatMsg数据自主管理完全指南
  • 题解:P11448 「ALFR Round 3」D 核裂变
  • 如何通过免费风扇控制软件实现Windows系统散热与静音的完美平衡
  • Windows脚本转换为Linux脚本
  • 题解:P11640 Graph
  • 新手也能搞定的红日靶场vulnstack1实战:从外网打点到内网横向移动(附完整命令)
  • Python点云处理总报错?3步定位坐标系错位、法向量翻转、体素滤波溢出(附可复用调试Checklist)
  • BrowserOS:基于Chromium内核的开源AI浏览器操作系统深度解析
  • 如何5分钟突破1Fichier下载限制:终极下载加速工具完全指南
  • DDrawCompat:让经典DirectX游戏在现代Windows系统上流畅运行的终极解决方案
  • 题解:CF1635E Cars
  • 2026年收藏10款主流论文降AI工具(含免费降AI率版) - 降AI实验室
  • 从零构建记忆增强系统:基于间隔重复与知识图谱的实践
  • 如何在 Taotoken 平台查看与管理您的 token 使用量与账单明细
  • PTA天梯赛L1-064:手把手教你用C++写一个‘估值一亿’的AI对话程序(附完整代码)
  • LinkSwift网盘直链下载助手:告别下载限速的八大网盘全能解决方案
  • 5步搞定音乐元数据混乱:163MusicLyrics智能整理全攻略