news 2026/7/1 8:09:23

二维坐标映射一维数字

作者头像

张小明

前端开发工程师

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/6/30 19:48:14

用HiPlot快速验证科研假设:可视化原型设计

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个科研假设快速验证工具&#xff0c;功能包括&#xff1a;1. 多种数据导入方式 2. 即时可视化反馈 3. 交互式参数调整 4. 多视图对比 5. 假设检验结果可视化。要求响应迅速&a…

作者头像 李华
网站建设 2026/7/1 10:57:09

零基础学C语言:sizeof运算符详解

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个面向初学者的sizeof学习应用&#xff0c;功能包括&#xff1a;1. 图文并茂的基础讲解 2. 交互式sizeof计算器 3. 常见错误案例演示 4. 逐步debug演示 5. 小测验功能。要求界…

作者头像 李华
网站建设 2026/7/1 20:13:48

对比:传统调试与AI辅助解决Gradle问题

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个对比分析工具&#xff0c;能够&#xff1a;1.记录开发者手动解决org.gradle.api.plugins.unknownpluginexception错误的全过程&#xff1b;2.同时使用AI自动分析并提供解决…

作者头像 李华
网站建设 2026/7/1 20:13:25

15分钟打造0x00000771错误诊断MVP

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 在快马平台上快速开发一个0x00000771错误诊断MVP。功能要求&#xff1a;1. 基本错误检测&#xff1b;2. 简单修复建议&#xff1b;3. 用户反馈收集。使用平台内置AI快速生成代码&am…

作者头像 李华
网站建设 2026/7/1 23:38:10

1小时搭建Excel数据查询Web应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 使用Flask框架开发一个简单的Web应用&#xff0c;允许用户上传Excel文件。后端使用pandas读取上传的文件&#xff0c;前端提供查询界面&#xff0c;用户可以输入筛选条件&#xff0…

作者头像 李华
网站建设 2026/7/1 20:09:56

Gazebo仿真效率提升:从8小时到30分钟的秘诀

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个自动化Gazebo仿真测试工具&#xff0c;能够&#xff1a;1) 自动生成不同复杂度的室内外场景 2) 批量测试机器人导航算法在不同环境下的表现 3) 生成性能对比报告(成功率、耗…

作者头像 李华