首页 > 其他分享 >线段上的格点数量

线段上的格点数量

时间:2023-07-08 14:23:36浏览次数:44  
标签:1p 存在 线段 格点 斜率 数量

平面坐标系上有两个格点\(p_1(x_1,y_1)\)和\(p_2(x_2,y_2)\),求线段\(p_1p_2\)上除了\(p_1,p_2\)还有几个格点。

结论

  • 当斜率存在时,格点数量为 \(gcd(|y_2-y_1|,|x_2-x_1|)-1\)
  • 当斜率不存在且\(y_1\ne y_2\)时,格点数量为 \(|y_2-y_1|-1\)
  • 当斜率不存在且\(y_1=y_2\)时,格点数量为0

标签:1p,存在,线段,格点,斜率,数量
From: https://www.cnblogs.com/cenqi/p/17537169.html

相关文章

  • CF1842E Tenzing and Triangle - 线段树优化 dp -
    题目链接:https://codeforces.com/contest/1842/problem/E题解:首先,如果两个等腰三角形相交了,那答案肯定不会更优。因此不会相交。先考虑一个\(n^2\)的dp:设\(dp_i\)表示考虑到\(x=i\)时的最小代价,首先可以先都加一个\(\sumc_i\),这样只需要考虑三角形覆盖范围内的\(c_i......
  • BZOJ 3073: [Pa2011]Journeys 线段树优化最短路
    3073:[Pa2011]JourneysTimeLimit: 20Sec  MemoryLimit: 512MBSubmit: 243  Solved: 80[Submit][Status][Discuss]DescriptionSeter建造了一个很大的星球,他准备建造N个国家和无数双向道路。N个国家很快建造好了,用1..N编号,但是他发现道路实在太多了,他要一条条......
  • BZOJ 2243: [SDOI2011]染色 树链剖分+线段树
    2243:[SDOI2011]染色TimeLimit: 20Sec  MemoryLimit: 512MBSubmit: 7623  Solved: 2855[Submit][Status][Discuss]Description给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点a到节点b路径上的颜色段数量(连续......
  • LeetCode 200. 岛屿数量
    classSolution{public:boolst[310][310];intdx[4]={0,0,-1,1},dy[4]={-1,1,0,0};intm,n;intnumIslands(vector<vector<char>>&g){intres=0;n=g.size(),m=g[0].size();for(inti=0;i<n;i++)......
  • 李超线段树模板
    细节和理解详见注释题目:https://www.luogu.com.cn/problem/P4097#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintmod1=39989;constintmod2=1e9;constdoubleeps=1e-9;typedefpair<double,int>pdi;intlasans;//细节://注意42排,开始......
  • 【线段树】 POJ 3667 Hotel
    这道题和那道HDOJ3308LCIS比较像。。那道题目我就写了超久,当时是不确定保存什么信息。。这道题也写了很久,主要是各种低级错误,找错找了很久,超级火。。。。#include<iostream>#include<sstream>#include<algorithm>#include<vector>#include<queue>#include<stack>#inc......
  • 【线段树】 HDOJ 4027 Can you answer these queries?
    想了好久的线段树,用到的思想好巧妙,因为最大是2的63次方,所以开了个6,7次的平方就全变成一了。。。。比较好写的一种方法是直接用不加lazy的线段树更新区间,然后加一个当sum=R-L+1就不更新的剪枝。。。。我的代码是每加一次开根就pushdown,达到7次以后就不更新了。。。#include<iost......
  • 【线段树】 HDOJ 3308 LCIS
    要保存很多信息的线段树,我写的线段树保存了超多的信息,而且pushup写了两遍。。。。有一种比较简单的方法是直接放弃结构体,用数组保存区间的一个端点和区间长度,因为区间长度需要用到很多次,如果选择保存区间的两个端点,那么代码会写的很长很难受。。。。我就是用结构题写的,保存的是区间......
  • 李超线段树
    引入与概括思考下列问题:在平面直角坐标系中维护集合,支持下列操作:加入一个定义域为\([l,r]\)的一次函数。查询所有定义域包含\(x\)的一次函数的函数值的最值。我们发现,这可以看成一个区间修改,单点查询的问题,考虑使用线段树维护。但我们发现传统线段树难以维护,于是......
  • 【线段树】 HDOJ 5274 Dylans loves tree
    用dfs序构建线段树,然后用lca求出两点间路径的xor和。。。#include<iostream>#include<queue>#include<stack>#include<map>#include<set>#include<bitset>#include<cstdio>#include<algorithm>#include<cstring>#include......