【学习笔记】Triangles
套一下公式然后完
根据对称性,不妨考虑 ( 0 , i ) , ( j , 0 ) , ( W , k ) (0,i),(j,0),(W,k) (0,i),(j,0),(W,k)围成的三角形,同时假设 i < k i<k i<k。
套用 Pick \text{Pick} Pick定理: 2 S = a + b − 2 2S=a+b-2 2S=a+b−2
得到 j ( k − i ) + W i = 2 a + gcd ( i , j ) + gcd ( W − j , k ) + gcd ( W , k − i ) − 2 j(k-i)+Wi=2a+\gcd(i,j)+\gcd(W-j,k)+\gcd(W,k-i)-2 j(k−i)+Wi=2a+gcd(i,j)+gcd(W−j,k)+gcd(W,k−i)−2
既然前面假设 k > i k>i k>i,那么我们令 d = k − i d=k-i d=k−i,这样所有数都是正数。
j d + W i = 2 a + gcd ( i , j ) + gcd ( W − j , k ) + gcd ( W , k − i ) − 2 jd+Wi=2a+\gcd(i,j)+\gcd(W-j,k)+\gcd(W,k-i)-2 jd+Wi=2a+gcd(i,j)+gcd(W−j,k)+gcd(W,k−i)−2
瞪眼法不难看出此时 j , d j,d j,d的对数是调和级数。那么我们枚举 j , d j,d j,d,这样只剩下变量 i i i:
j d − gcd ( W , d ) + 2 = 2 a + gcd ( i , j ) + gcd ( W − j , d + i ) − W i jd-\gcd(W,d)+2=2a+\gcd(i,j)+\gcd(W-j,d+i)-Wi jd−gcd(W,d)+2=2a+gcd(i,j)+gcd(W−j,d+i)−Wi
换成不等式:
W i ≤ − j d + gcd ( W , d ) + gcd ( i , j ) + gcd ( W − j , d + i ) − 2 + 2 K Wi\le -jd+\gcd(W,d)+\gcd(i,j)+\gcd(W-j,d+i)-2+2K Wi≤−jd+gcd(W,d)+gcd(i,j)+gcd(W−j,d+i)−2+2K
不难发现当 i ≤ ⌊ − j d + gcd ( W , d ) − 2 + 2 K W ⌋ i\le \lfloor\frac{-jd+\gcd(W,d)-2+2K}{W}\rfloor i≤⌊W−jd+gcd(W,d)−2+2K⌋时一定合法,因此只需检验 ⌊ − j d + gcd ( W , d ) − 2 + 2 K W ⌋ + 1 \lfloor\frac{-jd+\gcd(W,d)-2+2K}{W}\rfloor+1 ⌊W−jd+gcd(W,d)−2+2K⌋+1即可,可以 O ( 1 ) O(1) O(1)判断。
复杂度 O ( n log 2 n ) O(n\log^2 n) O(nlog2n)。
__EOF__

本文链接:https://www.cnblogs.com/cqbzly/p/17530035.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」