news 2026/9/20 12:52:37

1230 算法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1230 算法

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

class Solution {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

// 读取输入:N(点位数量)、基地X0、Y0
int N = scanner.nextInt();
int x0 = scanner.nextInt();
int y0 = scanner.nextInt();

// 存储「最简斜率」的计数(键:斜率的最简分数形式,值:出现次数)
Map<String, Integer> directionMap = new HashMap<>();

for (int i = 0; i < N; i++) {
int xi = scanner.nextInt();
int yi = scanner.nextInt();

// 计算相对基地的偏移量
int dx = xi - x0;
int dy = yi - y0;

// 生成最简形式的方向标识
String direction = getReducedForm(dx, dy);

// 记录该方向
directionMap.put(direction, directionMap.getOrDefault(direction, 0) + 1);
}

// 不同方向的数量就是最小路线数
System.out.println(directionMap.size());

scanner.close();
}

// 将(dx, dy)约分为最简分数形式,返回唯一标识字符串
private static String getReducedForm(int dx, int dy) {
if (dx == 0 && dy == 0) {
return "0,0"; // 理论上不会出现(基地本身不是拾取点)
}

// 计算最大公约数(GCD)
int gcd = gcd(Math.abs(dx), Math.abs(dy));
if (gcd != 0) {
dx /= gcd;
dy /= gcd;
}

// 统一符号:让分子为正(若分子为0,让分母为正),避免(-1,1)和(1,-1)被误判为不同方向
if (dx < 0) {
dx = -dx;
dy = -dy;
} else if (dx == 0) {
if (dy < 0) {
dy = -dy;
}
}

return dx + "," + dy;
}

// 计算两个数的最大公约数(欧几里得算法)
private static int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 9:17:56

科研团队协作首选:统一Miniconda-Python3.10环境杜绝差异

科研团队协作首选&#xff1a;统一Miniconda-Python3.10环境杜绝差异 在一次多校联合的AI项目中&#xff0c;团队成员提交了各自训练好的图像分类模型。结果却令人困惑&#xff1a;同样的代码&#xff0c;在A同学的机器上准确率92%&#xff0c;到了B同学的服务器上却报错“CUDA…

作者头像 李华
网站建设 2026/9/15 9:18:01

使用Miniconda-Python3.10镜像构建可复现的AI论文实验环境

使用Miniconda-Python3.10镜像构建可复现的AI论文实验环境 在深度学习研究中&#xff0c;一个令人沮丧但又极其常见的场景是&#xff1a;某篇论文声称取得了突破性成果&#xff0c;代码也已开源&#xff0c;但当你尝试在自己的机器上运行时&#xff0c;却因为各种依赖冲突、版本…

作者头像 李华
网站建设 2026/9/15 9:17:56

Markdown转HTML发布技术文章|Miniconda-Python3.10环境实操

Markdown转HTML发布技术文章&#xff5c;Miniconda-Python3.10环境实操 在当今数据科学与人工智能快速发展的背景下&#xff0c;技术写作早已不再是单纯的“写文档”。一篇高质量的技术文章不仅需要清晰的逻辑和准确的表达&#xff0c;更要求内容中嵌入的代码能够真实运行、结果…

作者头像 李华
网站建设 2026/9/17 16:51:51

GitHub热门镜像推荐:Miniconda-Python3.10支持PyTorch GPU加速

Miniconda-Python3.10 镜像&#xff1a;构建高效 AI 开发环境的现代实践 在深度学习项目频繁迭代、跨团队协作日益紧密的今天&#xff0c;一个常见的场景是&#xff1a;你在本地训练好的模型&#xff0c;到了同事或服务器上却因为“包版本不一致”“CUDA 不匹配”“缺少某个系…

作者头像 李华