news 2026/6/10 13:19:02

二维坐标映射一维数字

作者头像

张小明

前端开发工程师

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/10 9:24:36

传统图片查看 vs viewer.js:开发效率对比实验

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 请分别用原生JavaScript和viewer.js实现相同的图片查看功能&#xff0c;包括&#xff1a;1. 基本缩放 2. 旋转 3. 全屏 4. 缩略图导航。然后对比两种方案的代码行数、开发时间、浏览…

作者头像 李华
网站建设 2026/6/10 9:22:58

10分钟验证创意:用Keras和快马打造AI原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 快速创建一个基于Keras的情感分析原型系统&#xff0c;能够判断用户评论的情感倾向(正面/负面)。要求&#xff1a;1)使用预训练词嵌入 2)构建简单的神经网络模型 3)提供测试接口输入…

作者头像 李华
网站建设 2026/6/10 9:02:35

Vue3小白也能懂的inject使用图解

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 制作一个面向初学者的Vue3 inject教学示例&#xff0c;要求&#xff1a;1. 使用生动比喻解释provide/inject概念(如快递站和取件码) 2. 分步骤实现最简单的注入示例 3. 添加常见错误…

作者头像 李华
网站建设 2026/6/10 2:51:14

传统排错vsAI诊断:0x00000771处理效率对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个带有时钟功能的错误诊断工具&#xff0c;能够记录并对比&#xff1a;1. 手动排查0x00000771错误的时间消耗&#xff1b;2. 使用AI辅助诊断的时间消耗。工具需要自动生成对比…

作者头像 李华
网站建设 2026/6/10 9:03:22

1小时打造个性化设备连接工具原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 快速开发一个设备连接工具原型。要求&#xff1a;1)简洁的用户界面&#xff1b;2)基础设备扫描功能&#xff1b;3)模拟连接过程&#xff1b;4)可扩展的架构设计&#xff1b;5)原型演…

作者头像 李华
网站建设 2026/6/10 9:04:32

NestJS零基础入门:用AI快速搭建第一个应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 为NestJS初学者生成一个简单的待办事项(Todo)应用&#xff0c;要求&#xff1a;1)使用REST API 2)内存数据库即可 3)包含创建、读取、更新、删除功能 4)有清晰的代码注释 5)附带Pos…

作者头像 李华