当前位置: 首页 > news >正文

蓝桥杯每日N题 (消灭老鼠)

大家好 我是寸铁 希望这篇题解对你有用,麻烦动动手指点个赞或关注,感谢您的关注

不清楚蓝桥杯考什么的点点下方👇

考点秘籍

想背纯享模版的伙伴们点点下方👇

蓝桥杯省一你一定不能错过的模板大全(第一期)

蓝桥杯省一你一定不能错过的模板大全(第二期)

蓝桥杯省一你一定不能错过的模板大全(第三期)

蓝桥杯省一你一定不能错过的模板大全(第四期)!!!

想背注释模版的伙伴们点点下方👇

蓝桥杯必背第一期

蓝桥杯必背第二期

往期精彩回顾

蓝桥杯上岸每日N题 第一期(一)!!!

蓝桥杯上岸每日N题第一期(二)!!!

蓝桥杯上岸每日N题第一期(三)!!!

蓝桥杯上岸每日N题第二期(一)!!!

蓝桥杯上岸每日N题第三期(一)!!!

蓝桥杯上岸每日N题 第四期(最少刷题数)!!!

蓝桥杯上岸每日N题 第五期(山)!!!

蓝桥杯上岸每日N题 第六期(求阶乘)!!!

蓝桥杯上岸每日N题 第七期(小猫爬山)!!!

蓝桥杯上岸每日N题 第八期 (全球变暖)!!!

操作系统期末题库 第九期(完结)

LeetCode Hot100 刷题(第三期)

idea创建SpringBoot项目报错解决方案

数据库SQL语句(期末冲刺)

想看JavaB组填空题的伙伴们点点下方 👇

填空题

竞赛干货

算法竞赛字符串常用操作大全

蓝桥杯上岸必刷!!!(模拟/枚举专题)

蓝桥杯上岸必背!!! (第三期 DP)

蓝桥杯上岸必背!!!(第四期DFS)

蓝桥杯上岸必背!!!(第五期BFS)

蓝桥杯上岸必背!!!(第六期树与图的遍历)

蓝桥杯上岸必背!!!(第七期 最短路算法)

蓝桥杯上岸必背!!!(第八期 简单数论)

蓝桥杯上岸必刷!!!(进制、数位专题)

蓝桥杯上岸考点清单 (冲刺版)!!!

蓝桥杯上岸必背模板 (纯享版)

题目

消灭老鼠

分析

直线方程y=kx+b
确定最初的点(x0,y0)后,询问的每个点到该点都看作一个向量。
计算好每个点(x1,y1)到点(x0,y0)差值
y=y1-y0x=x1-x0
由于我们选取了最初的x0、y0作为参照点来处理每个点,类似于向量。
所以我们可以将各点的直线方程的b值看作0
y1-y0=k(x1-x0)
即为y=kx,k=y/x
相当于yx的比值为k倍。
由于比值k只和x、y有关系,
所以我们可以将问题转换成去求x、y最大公约数k
我们知道y/x=k,如何进一步确定是同一条直线?
同一条直线相当于各个点y/x比值均相同
即我们的y/x中的y、x同除于k这样就可以将相同直线情况的点简化到一起。
再将其加入到set中,set的大小有多大就需要发射多少条不同的射线

注意

Java中我们用字符串形式set存储对应的x、y结果时,运算是用对应的字符串String.valueOf来进行处理。
如果直接处理再加入set中会WA

Accode

import java.util.*;
public class Main{public static int gcd(int a,int b){while(b!=0){int temp=a%b;a=b;b=temp;}return a;}public static void main(String []args){Scanner sc=new Scanner(System.in);Set<String>set=new HashSet<>();int T=sc.nextInt();int a=sc.nextInt();int b=sc.nextInt();while(T-->0){int x=sc.nextInt();int y=sc.nextInt();x-=a;y-=b;int d=gcd(x,y);String s=String.valueOf(y/d)+" "+String.valueOf(x/d);set.add(s);}System.out.println(set.size());}
}

过7/15个样例

import java.util.*;
public class Main{public static int gcd(int a,int b){while(b!=0){int temp=a%b;a=b;b=temp;}return a;}public static void main(String []args){Scanner sc=new Scanner(System.in);Set<String>set=new HashSet<>();int T=sc.nextInt();int a=sc.nextInt();int b=sc.nextInt();while(T-->0){int x=sc.nextInt();int y=sc.nextInt();x-=a;y-=b;int d=gcd(x,y);x/=d;y/=d;if(x<0)x=-x;y=-y;set.add(x+" "+y);}System.out.println(set.size());}
}
http://www.lryc.cn/news/132605.html

相关文章:

  • k8s 用户角色 权限的划分
  • 聊一下操作系统 macOS 与 Linux
  • OJ练习第153题——分发糖果
  • iOS 通知推送服务端部署测试过程详细版
  • 【COMP282 LEC3 LEC4 LEC5】
  • panda3d加载模型复习和python面向对象编程属性学习
  • 使用 Node.js 生成优化的图像格式
  • 【WinAPI详解】<CreateWindowEx详解>
  • 【Git】分支管理
  • 玩转单元测试之gtest
  • Tomcat 一次请求的生命周期
  • spring cloud gateway中配置uri
  • 使用NAudio录制wav音频
  • 数据结构之动态内存管理机制
  • 【汇编语言】栈及栈操作的实现
  • 【JavaEE】面向切面编程AOP是什么-Spring AOP框架的基本使用
  • SpringBoot+微信小程序奶茶在线点单小程序系统 附带详细运行指导视频
  • 【支付宝小程序】开发基础--文件结构教程
  • LLM 生成式配置的推理参数温度 top k tokens等 Generative configuration inference parameters
  • npm的镜像源和代理的查看和修改
  • IP库新增经过实践的Verilog 库
  • SLAM-VIO视觉惯性里程计
  • 分布式 RPC 框架入门
  • Spring boot与Spring cloud 之间的关系
  • 报名开启 | HarmonyOS第一课“营”在暑期系列直播
  • Apache DolphinScheduler 支持使用 OceanBase 作为元数据库啦!
  • matlab使用教程(17)—广度优先和深度优先搜索
  • CSerialPort教程4.3.x (2) - CSerialPort源码简介
  • 【数据结构OJ题】有效的括号
  • Java性能分析中常用命令和工具