news 2026/1/12 20:58:15

二维坐标映射一维数字

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
二维坐标映射一维数字

目录

最常用:行优先映射(Row-major Order)

核心公式(默认 x 是行号,y 是列号)

示例(好记)

关键前提

题目应用


最常用:行优先映射(Row-major Order)

这是最直观、工程中最常用的方式,本质是 “按行遍历,依次编号”,适用于x、y 有明确范围(如矩阵、网格)的场景(比如题目中 x∈[0, n-1],y∈[0, m-1])。

核心公式(默认 x 是行号,y 是列号)

  • 一维索引 idx = x * m + y(m 是每一行的列数,即 y 的最大取值 + 1;若 x、y 从 1 开始,调整为 idx = (x-1)*m + (y-1))
  • 反向映射(从 idx 找回 (x, y)):x = idx //m (整数除法,向下取整)y = idx % m (取余)

示例(好记)

假设网格是 3 行(x=0,1,2)、4 列(y=0,1,2,3),m=4:

  • (0,0) → 04+0=0;(0,3)→04+3=3
  • (1,0) →14+0=4;(2,3)→24+3=11
  • 反向:idx=7 → x=7//4=1,y=7%4=3 → (1,3),完全唯一

关键前提

x 和 y 的范围固定(已知行数 n、列数 m),且 x、y 均在 [0, n-1]、[0, m-1] 内(无越界)。

题目应用

AtCoder C - 2x2 Placinghttps://atcoder.jp/contests/abc436/tasks/abc436_c使用map存每一个坐标的映射,然后直接判断即可

#include <bits/stdc++.h> using namespace std; #define int long long // priority_queue<int, vector<int>, greater<int> > q; const int N = 4e5+10; const int inf=1e18; void solve() { int n, m; cin >> n >> m; map<int,int>p; int ans=0; while (m--) { int r,c; cin >> r >> c; if (!p[r*n+c]&&!p[(r+1)*n+c]&&!p[r*n+(c+1)]&&!p[(r+1)*n+(c+1)]) { ans++; p[r*n+c]++; p[(r+1)*n+c]++; p[r*n+(c+1)]++; p[(r+1)*n+(c+1)]++; } } cout << ans << endl; } signed main() { int q=1; // cin >> q; while (q--) { solve(); } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/7 8:53:45

零基础入门:5分钟学会第一个RNN程序

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个最简单的RNN入门教程项目&#xff0c;要求&#xff1a;1. 使用最基础的SimpleRNN层 2. 处理手写数字识别(MNIST)任务 3. 代码注释覆盖每一行 4. 包含错误排查指南 5. 提供模…

作者头像 李华
网站建设 2025/12/23 11:59:03

企业级SD-WAN测试:用EVE-NG构建真实演练环境

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个完整的SD-WAN测试实验室模板&#xff0c;包含总部和3个分支机构的拓扑结构&#xff0c;集成Cisco Viptela或VMware SD-WAN解决方案。要求支持策略路由、QoS配置、链路故障切…

作者头像 李华
网站建设 2025/12/23 15:22:11

NestJS开发效率对比:传统vs快马AI生成

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 请生成一个完整的NestJS后台管理系统基础框架&#xff0c;包含&#xff1a;1)RBAC权限系统 2)JWT认证 3)日志系统 4)文件上传模块 5)数据验证管道 6)单元测试框架。要求代码结构清晰…

作者头像 李华
网站建设 2025/12/30 5:32:49

kubectl cp入门指南:从零学会容器文件操作

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个交互式kubectl cp学习应用&#xff0c;功能包括&#xff1a;1. 基础命令模拟器 2. 分步骤教学向导 3. 常见错误诊断 4. 实践练习题 5. 即时反馈系统。使用JavaScript构建命…

作者头像 李华
网站建设 2025/12/23 13:57:07

比手动调试快10倍:自动化处理Python模块错误

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 编写一个Python脚本&#xff0c;能够&#xff1a;1) 解析ModuleNotFoundError错误信息&#xff1b;2) 自动搜索PyPI查找可能的模块名称&#xff08;处理拼写错误情况&#xff09;&a…

作者头像 李华
网站建设 2025/12/23 14:25:31

电商项目中解决ModuleNotFoundError的实战经验

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个电商库存管理系统的Python模块&#xff0c;包含以下功能&#xff1a;1) 自动检测项目依赖并生成requirements.txt&#xff1b;2) 检查虚拟环境中缺失的模块&#xff1b;3) …

作者头像 李华