矩形对角线问题
将一个长为m宽为n的矩形划分成 m * n 个单元格作一条对角线标记该对角线与单元格的交点,有如下结论单条对角线经过的单元格数量为 m n - gcd(m,n)从 (0,0) 到 (m,n) 的直线在单位格中经过的格点包括端点数量是 gcd(m,n) 1如果只算内部格点就是 gcd(m,n) - 1单条对角线的交点数|S1| m n 1 - gcd(m,n) 两条对角线共同的交点数:2*(a b - gcd(a,b) - 1) - (a%20 || b%20 ? 1 : 0)。1.单条对角线经过的单元格数量为mn-gcd(m,n)1若m和n互为质数即gcd(m,n)1此时对角线与矩形只有两个端点在格点上内部没有位于格点的交点。ps:当横向交点与纵向交点重合时重复计算交点需减去。可知横向有m1个交点蓝色紫色纵向有n1个交点粉色紫色两个端点各被水平和竖直边界重复计算一次紫色所以要减去2共有(m1)(n1)-2mn个交点mn个交点将对角线分成mn-1段每段经过1个单元格共经过mn-1个单元格。2当m和n不互质时令d为二者的最大公约数即gcd(m,n)d, 此时m/d和n/d互质。取长m/d、宽n/d的小矩形此时由1可知对角线经过m/dn/d-1个单元格,大矩形共经过d*(m/dn/d-1)mn-gcd(m,n)个单元格。2.从 (0,0) 到 (m,n) 的直线经过的格点包括端点数量是 gcd(m,n) 1内部格点数是 gcd(m,n) - 1令gcd(m,n) dmn), 则m是n的d倍x 和 y n * x (0xd,x取整) 均为整数此时x,y)在格点上。因此包括端点的格点数为gcd(m,n) 1,内部格点数为gcd(m,n)-1。3.单条对角线的交点数|S1| m n 1 - gcd(m,n)|S1| 垂直线数 水平线数 - 顶点数。由2可知|S1| (m 1) (n 1) - (gcd(m,n) 1) m n 1 - gcd(m,n)。4.两条对角线共同的交点数:2*(a b - gcd(a,b) - 1) - (a%20 || b%20 ? 1 : 0)两条对角线唯一的交点是矩形墙壁的中心点。只有当这个中心点恰好落在某条网格线上时它才会被我们计入 |S1| 和 |S2|。墙壁的中心点坐标可以表示为 (m/2,n/2)。每条对角线内部交点数为 m n - gcd(m,n) - 1两条合计2*(m n - gcd(m,n) - 1)如果 m 和 n 有一个是偶数中心点就会落在网格线上并被重复计算所以要减 1。因此答案 2*(m n - gcd(m,n) - 1) - (m%20 || n%20 ? 1 : 0)。练习墙壁划线容斥原理

相关新闻

Agent Skills开发指南:Python与TypeScript生态实践

Agent Skills开发指南:Python与TypeScript生态实践

1. Agent Skills生态全景概览在当今开源生态系统中,Agent Skills正成为开发者工具箱中不可或缺的组成部分。这些技能仓库为开发者提供了即插即用的功能模块,大幅降低了构建智能代理系统的门槛。GitHub作为全球最大的代码托管平台,汇聚了最活跃…

2026/7/20 5:38:41 阅读更多 →
Cursor错误日志无法关联Git blame?破解VS Code DevTools与Cursor Runtime日志时序对齐难题(含TS类型守卫自动注入脚本)

Cursor错误日志无法关联Git blame?破解VS Code DevTools与Cursor Runtime日志时序对齐难题(含TS类型守卫自动注入脚本)

更多请点击: https://codechina.net 第一章:Cursor错误日志系统的架构本质与设计契约 Cursor 错误日志系统并非传统意义上的中心化日志收集器,而是一个面向开发会话(dev-session)的上下文感知型诊断基础设施。其架构本…

2026/7/20 6:37:39 阅读更多 →
API 中转服务怎么测:OpenAI SDK 兼容性、流式输出与错误排查

API 中转服务怎么测:OpenAI SDK 兼容性、流式输出与错误排查

很多开发者第一次选择 API 中转服务时,最先比较的是价格和模型数量。但真正接入项目后,影响使用体验的往往是另外几件事:OpenAI SDK 是否兼容、流式输出会不会中断、错误码是否清楚,以及出现故障后能不能快速定位。 本文不做“哪家…

2026/7/20 3:55:45 阅读更多 →

最新新闻

【Bug已解决】perf: openai-curated marketplace scan appears to enumerate a very large not-installed catalo

【Bug已解决】perf: openai-curated marketplace scan appears to enumerate a very large not-installed catalo

【Bug已解决】perf: openai-curated marketplace scan appears to enumerate a very large not-installed catalog every turn 解决方案原始报错:perf: openai-curated marketplace scan appears to enumerate a very large not-installed catalog every turn 场景&…

2026/7/20 18:53:02 阅读更多 →
考研高数洛必达法则的运用:核心原理、使用条件与典型例题详解

考研高数洛必达法则的运用:核心原理、使用条件与典型例题详解

一、洛必达法则简介洛必达法则(LHpitals Rule)是求解函数极限的一种重要方法,尤其在处理 0/0 或 ∞/∞ 型未定式极限时非常有效。它通过将原函数的极限问题转化为其导函数之比的极限问题,从而简化计算。在考研数学(高等…

2026/7/20 18:53:02 阅读更多 →
如何快速上手DeText:10分钟搭建你的第一个文本分类模型

如何快速上手DeText:10分钟搭建你的第一个文本分类模型

如何快速上手DeText:10分钟搭建你的第一个文本分类模型 【免费下载链接】detext DeText: A Deep Neural Text Understanding Framework for Ranking and Classification Tasks 项目地址: https://gitcode.com/gh_mirrors/de/detext DeText是一个强大的深度神…

2026/7/20 18:53:02 阅读更多 →
为什么选择grunt-sass?5个理由让它成为Sass编译的最佳工具 [特殊字符]

为什么选择grunt-sass?5个理由让它成为Sass编译的最佳工具 [特殊字符]

为什么选择grunt-sass?5个理由让它成为Sass编译的最佳工具 🔥 【免费下载链接】grunt-sass Compile Sass to CSS 项目地址: https://gitcode.com/gh_mirrors/gr/grunt-sass 在现代前端开发中,Sass已经成为CSS预处理器的事实标准&#…

2026/7/20 18:53:02 阅读更多 →
Laguna-XS-2.1-8bit性能测试:MacBook M5 Max上实现95 tok/s极速生成

Laguna-XS-2.1-8bit性能测试:MacBook M5 Max上实现95 tok/s极速生成

Laguna-XS-2.1-8bit性能测试:MacBook M5 Max上实现95 tok/s极速生成 【免费下载链接】Laguna-XS-2.1-8bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Laguna-XS-2.1-8bit Laguna-XS-2.1-8bit是一款专为MLX框架优化的量化模型,…

2026/7/20 18:53:02 阅读更多 →
| 端口本身没区别,暴露方式才是关键

| 端口本身没区别,暴露方式才是关键

从 TCP/IP 角度看,8028 和 80、443 都只是 TCP 端口,传输数据的能力没有本质区别。 真正的差别在于,生产环境里的 80/443 往往不是直接打到应用容器,而是先经过一层统一入口,比如 WAF、负载均衡器、Nginx 反向代理。这…

2026/7/20 18:52:02 阅读更多 →

日新闻

2026 WAIC:努比亚二代“豆包手机”NaviX Ultra亮相,智能体验全面升级!

2026 WAIC:努比亚二代“豆包手机”NaviX Ultra亮相,智能体验全面升级!

7月18日智东西消息,在2026 WAIC期间,努比亚联合字节豆包打造的二代“豆包手机”努比亚NaviX Ultra首次亮相,相比一代有诸多升级。智能体手机理念中兴通讯终端事业部总裁、努比亚总裁倪飞表示,智能体手机要从人操作手机变为手机帮人…

2026/7/20 0:00:34 阅读更多 →
努比亚NaviX Ultra亮相WAIC,智能体手机能否让用户生活更简单?

努比亚NaviX Ultra亮相WAIC,智能体手机能否让用户生活更简单?

努比亚NaviX Ultra:外观与功能双升级在2026 WAIC期间,首次亮相的努比亚NaviX Ultra吸引了众多目光。它是努比亚联合字节豆包打造的二代“豆包手机”,与一代努比亚M153相比,外观设计变化较大。其机身背部搭载横向排布的大尺寸影像模…

2026/7/20 0:00:34 阅读更多 →
C# 将逗号分割的字符串转换为long,并添加到List<long>

C# 将逗号分割的字符串转换为long,并添加到List<long>

目录 方法1:使用Split和Convert.ToInt64 方法2:使用LINQ的Select和ToList 方法3:使用TryParse进行异常安全转换(推荐) 如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天…

2026/7/20 0:00:34 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/20 5:57:49 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/20 4:31:26 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/20 5:56:42 阅读更多 →

月新闻