Visible Lattice Points(莫比乌斯反演经典)

莫比乌斯函数ACM 莫比乌斯入门请耐心往下看: OK.现在可以开始刷题了。 莫比乌斯反演   HDU 1695 GCD 从区间[1, b]和[1,d]中分别选一个x, y,使得gcd(x, y) == k, 求满足条件的xy的对数(不区分xy的顺序) 分析:转换成求[1,b/k],[1,d/k]中gcd(x,y)==1的(x,y) 阅读详情

Visible Lattice Points

Consider a N*N*N lattice. One corner is at (0,0,0) and the opposite one is at (N,N,N). How many lattice points are visible from corner at (0,0,0) ? A point X is visible from point Y iff no other lattice point lies on the segment joining X and Y.

Input :
The first line contains the number of test cases T. The next T lines contain an interger N

Output :
Output T lines, one corresponding to each test case.

Sample Input :
3
1
2
5

Sample Output :
7
19
175

Constraints :
T <= 50
1 <= N <= 1000000

题意:

可以说此题是Visible Trees HDU2841(有详解)这道题目的改编,原题是求一个平面上即二维的,能看到多少并且是从(1,1)-(m,n),但是上面那道题我当时使用容斥做的,这道题则变成了三维的,问能看到多少点

分析:

如果大家先看看上面说的那道题目的话,就会明白,实际上是让我们找gcd(a,b,c) = 1的点有多少个,只要满足gcd(a,b,c) = 1就能看见

那么这道题就又和题目GCD hdu1695实质上也是求gcd(a,b) = 1的个数,而这道题我是用莫比乌斯反演做的

因此对于一般情况而言直接利用莫比乌斯反演可做

但是需要注意特殊情况,即在xyz直角坐标系中,在三个平面上时其实相当于是二维的,即有一个坐标为0,这样共有三种情况即在xy面,yz面,xz面,因此求处二维的乘3。

另一种特殊情况是在坐标轴上即有两个坐标为0,这样每个轴上就只能看到三个点,所以我们可以初始化sum=3,然后开始后面的累加

code:

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6+10;
int prime[maxn],cnt;
int mu[maxn];
bool vis[maxn];
void init(){
    int N = maxn;
    memset(prime,0,sizeof(prime));
    memset(mu,0,sizeof(mu));
    memset(vis,0,sizeof(vis));
    mu[1] = 1;
    cnt = 0;
    for(int i = 2; i < N; i++){
        if(!vis[i]){
            prime[cnt++] = i;
            mu[i] = -1;
        }
        for(int j = 0; j < cnt && i * prime[j] < N; j++){
            vis[i*prime[j]] = 1;
            if(i % prime[j]) mu[i*prime[j]] = -mu[i];
            else{
                mu[i*prime[j]] = 0;
                break;
            }
        }
    }
}
int main(){
    init();
    int T;
    scanf("%d",&T);
    while(T--){
        ll n;
        scanf("%lld",&n);
        ll sum = 3;//在坐标轴上x,y,z
        for(ll i = 1; i <= n; i++){
            sum += mu[i] * (n / i) * (n / i) * (n / i + 3);
            //(n / i) * (n / i) * 3 相当于在面上的和
            //(n / i) * (n / i) *(n / i)相当于一般情况
        }
        printf("%lld\n",sum);
    }
    return 0;
}
别再瞎改注册表了!实测Win10/Win11远程桌面60帧的正确姿势(附ToDesk对比) 本文深入解析Windows远程桌面60帧优化的科学方法,揭示常见误区并提供实测有效的解决方案。从版本差异到硬件加速,再到第三方工具对比(如ToDesk),帮助用户避开无效的注册表修改,实现流畅的远程桌面体验。 阅读详情

相关推荐

为什么我把「大模型Clouder认证:基于百炼平台构建智能体应用」作为大模型学习的第一站?从 0 到拿证全流程经验分享

【摘要】作为一个刚拿下「大模型 Clouder 认证:基于百炼平台构建智能体应用」的过来人,想在开头就和大家聊聊这个认证的特殊意义 —— 在企业加速 AI 落地的今天,能用低代码快速构建智能体应用,已经成为 AI 从业者的核心竞争力。无论是企业微信客服提效、钉钉机器人自动化办公,还是网站智能助手升级,这些场景化能力正是当下数字化转型的刚需。

davidkorhenn的博客 1526

[欧拉函数]Visible Lattice Points POJ3090

A lattice point (x,y) in the first quadrant (xandyare integers greater than or equal to 0), other than the origin, is visible from the origin if the line from (0, 0) to (x,y) does not pass through any other lattice point. For example, the point (4, 2)...

Cloth的博客 606

手把手教你用Wireshark抓包分析Profinet非周期通信(附实战案例)

本文详细解析了PROFINET非周期通信(RTA)的技术原理与实战应用,通过Wireshark抓包分析,揭示从PLC请求到驱动器响应的完整对话过程。涵盖实验环境搭建、关键配置步骤、典型参数访问流程及故障诊断案例,帮助工程师深入理解并优化工业网络通信性能。

Black的专栏 1048

Visible Lattice Points (欧拉函数)

Visible Lattice Points (欧拉函数)

GreenAppple的专栏 1558

三部对接 sora-2:OpenAI 最新视频模型快速接入指南

本文介绍OpenAI最新视频生成模型Sora-2的接入方案,重点解析其Chat格式调用功能。开发者可通过在提示词中嵌入"横屏/竖屏""时长""清晰度"等要求快速生成视频。文章分三部分:1)基础准备(环境配置与API密钥获取);2)核心调用(提供Python/Java示例代码);3)结果查询与优化建议。Sora-2支持多语言调用,简化了视频生成流程,适用于短视频、广告创意等场景。

2501_93565190的博客 3422

Windows server Database 2025 安装 i225/i226 网卡驱动

Windows server Database 2025 安装 i225/i226 网卡驱动 windows这比坏得很,intel消费级网卡不准在服务器系统上安装。你要说他是异构不支持?他就纯粹恶心人。 之前已经安装过一次,但是今天database预览版一更新,又给我把网卡驱动杀了,气死,写一篇教程。 到这里就完成了,总之还是想辱骂windows,提供便捷的同时又人为制造困难,多少有点(隔壁linux内核直接自带全家桶了就一省心) 并且近年Intel的新U安装显卡驱动和普通声卡驱动都不会出声

低温热源的博客 1万+

【数论系列】 欧拉函数

我们知道互质是指两个正整数只有一个公因数1时,它们的关系叫做互质。欧拉函数就是对于一个正整数n, 求1~n中跟n互质的数有多少个。

这里是阿安的博客 1031

GEE:随机森林分类教程(样本制作、特征添加、训练、精度、参数优化、贡献度、统计面积)

本文将介绍在Google Earth Engine (GEE)平台上进行随机森林分类的方法和代码,其中包括制作样本点教程(本地、在线和本地在线混合制作样本点,合并样本点等),加入特征变量,运行随机森林分类器教程,计算随机森林分类结果的精度,优化随机森林分类算法的参数,打印各个变量特征的贡献度等步骤的方法和代码。本教程可以应用于多种分类场景,包括土地利用分类、种植区提取(大蒜、小麦、玉米等)、局部气候区分类、植被分类等多种场景。

养乐多的博客 1万+

欧拉函数 - Visible Lattice Points - POJ 3090

欧拉函数 - Visible Lattice Points - POJ 3090 在一个平面直角坐标系的第一象限内,如果一个点(x,y)与原点(0,0)的连线中没有通过其他任何点,则称该点在原点处是可见的。 例如,点(4,2)就是不可见的,因为它与原点的连线会通过点(2,1)。 部分可见点与原点的连线如下图所示: 编写一个程序,计算给定整数N的情况下,满足0≤x,y≤N的可见点(x,y)的数量(可见点不包括原点)。 输入格式 第一行包含整数C,表示共有C组测试数据。 每组测试数据占一行,包含一个整数N。

njuptACMcxk的博客 2759

AFSim2.9.0学习笔记 —— 2、AFSim的Wizard软件概述(ArkSIM集成开发环境 (IDE))

AFSim2.9.0学习笔记 —— 2、AFSim的Wizard软件详述(ArkSIM集成开发环境 (IDE))

918

廉价却有效?ESD防护中的电容

摘要:在成本敏感型电子产品设计中,多层陶瓷电容(MLCC)可作为TVS二极管的替代方案用于静电放电(ESD)防护。其工作原理是通过电容充放电特性吸收静电能量,而非电压钳位。计算表明100nF/50V MLCC可有效缓冲8kV静电冲击,但存在吸收能量有限、无自恢复等局限。建议将MLCC作为一级缓冲措施,配合TVS等器件形成多级防护,并优先选择X7R材质、100nF容值、50V耐压的0402/0603封装MLCC。该方案在低速信号和电源引脚防护中具有显著成本优势,但不能完全替代专业ESD抑制器。

硬核科技 430

spoj 7001 Visible Lattice Points (莫比乌斯反演)

Visible Lattice Points Consider a NNN lattice. One corner is at (0,0,0) and the opposite one is at (N,N,N). How many lattice points are visible from corner at (0,0,0) ? A point X is visible from point...

qq_44843959的博客 223

手把手教你学Simulink实例--使用 Simulink 进行电力电子系统的小信号模型仿真

电力电子系统(Power Electronics System)包括各种功率转换器(如 DC-DC 转换器、逆变器等)。这些设备中的关键组件(如 MOSFET、IGBT、电容器、电感器等)不仅影响系统的性能,还直接关系到系统的稳定性、效率和可靠性。因此,在设计阶段进行详细的建模和仿真至关重要。小信号模型仿真的目的是通过线性化非线性系统来评估其动态特性,包括增益、相位裕度、带宽等指标。通过本教程,我们介绍了如何使用 Simulink 进行电力电子系统的小信号模型仿真。背景介绍。

MHD0815的博客 298

SPOJ 7001 Visible Lattice Points (数论关于gcd,超经典极力推荐-莫比乌斯反演)

传送门:http://www.spoj.com/problems/VLATTICE/SPOJ Problem Set (classical)7001. Visible Lattice PointsProblem code: VLATTICEConsider a N*N*N lattice. One corner is at (0,0,0) and the opposite one is at (N...

lamborghini1993 3956

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

[SPOJ VLATTICE]Visible Lattice Points 数论 莫比乌斯反演

7001. Visible Lattice Points Problem code: VLATTICE Consider a N*N*N lattice. One corner is at (0,0,0) and the opposite one is at (N,N,N). How many lattice points are visible from co

一维空间 1657

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Visible Lattice Points(莫比乌斯反演)

题目: Consider a N*N*N lattice. One corner is at (0,0,0) and the opposite one is at (N,N,N). How many lattice points are visible from corner at (0,0,0) ? A point X is visible from point Y iff no o...

哇哈哈哈的博客 203

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

莫比乌斯反演 SPOJ - VLATTICE Visible Lattice Points

题意: 从立方体点阵,从(0,0,0)到(N,N,N),给定N求从(0,0,0)能看到的点的个数,其中能看到是指两点的连线的线段上没有其他的点。 题解: 题意可转换为从点(0,0,0)出发,以其余任一点结束,方向不同的向量数。 对于任一点(x,y,z),若gcd(x,y,z)=d,其中d>1,则必存在点挡住了该点。 因此,其实最后要求的就是gcd(x,y,z)=1的(x,y,z)的...

qq_38515845的博客 241

SPOJ 7001 Visible Lattice Points (莫比乌斯反演)

 题意:给定n*n*n的立方体,问从(0,0,0)点处能看到多少点,一个点能被看到当且仅当它与原点之间的连线上没有其他点。 思路:假设一个点(x,y,z)能被看到,那么gcd(x,y,z)一定为1,这是因为如果这三者有公因数,那么除以公因数后的这个点一定在它与原点之间的连线上,所以我们要求的等价于(0,n)中任取三点(可以相等),且这三者的gcd为1的点的数量。 这个问题就很类似经典莫比

GODSPEED 480

莫比乌斯反演

推荐教程 tls peng-ym 莫比乌斯反演常用的两种形式: \[ \begin{aligned} &(1).F(n)=\sum_{d|n}f(d)\Rightarrow f(n)=\sum_{d|n}\mu(d)F(\frac{n}{d})&\\ &(2).F(n)=\sum_{n|d}f(d)\Rightarrow f(n)=\sum_{n|d}\mu(\f...

weixin_30762087的博客 90

SPOJ-VLATTICE Visible Lattice Points-莫比乌斯反演

需要将问题分解一下。 我们需要求的是这个立方体从(0,0,0)能看到的点的个数。可是在三个含有(0,0,0)的面上我们没有办法和其他的一起进行分析(因为含有坐标是0,而我们的数论工具都是从1开始的),所以我们可以将那三个面分开考虑,剩下的就是一个立方体,这个立方体中能看到的点的坐标就是gcd(x,y,z)=1,然后用莫比乌斯反演进行处理。对于那三个面,首先是三个坐标轴上我们只能看到三个点,剩下的每...

T_T233333333的博客 266

SPOJ VLATTICE Visible Lattice Points(莫比乌斯反演)题解

题意: 有一个\(n*n*n\)的三维直角坐标空间,问从\((0,0,0)\)看能看到几个点。 思路: 按题意研究一下就会发现题目所求为。 \[ (\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n[gcd(i,j,k)==1])+(\sum_{i=1}^n\sum_{j=1}^n[gcd(i,j)==1])\\+(\sum_{i=1}^n\sum_{k=1}^n[...

weixin_30496431的博客 123

SPOJ - VLATTICE Visible Lattice Points (莫比乌斯反演)

Consider a N*N*N lattice. One corner is at (0,0,0) and the opposite one is at (N,N,N). How many lattice points are visible from corner at (0,0,0) ? A point X is visible from point Y iff no other latti

baidu_35522092的博客 470

莫比乌斯反演 - Visible Lattice Points - SPOJ - VLATTICE

莫比乌斯反演 - Visible Lattice Points - SPOJ - VLATTICE 题意: 给定一个n×n×n的立方体,从(0,0,0)看过去,问能够看到多少个点。给定一个n×n×n的立方体,从(0,0,0)看过去,问能够看到多少个点。给定一个n×n×n的立方体,从(0,0,0)看过去,问能够看到多少个点。 空间中,一个点X能够被点Y看到的充要条件是:点X和点Y的这条线段上,不存在其他点。空间中,一个点X能够被点Y看到的充要条件是:点X和点Y的这条线段上,不存在其他点。空间中,一个点X能够被

njuptACMcxk的博客 205

Visible Lattice Points (SPOJ-VLATTICE)(莫比乌斯反演)

Consider a N*N*N lattice. One corner is at (0,0,0) and the opposite one is at (N,N,N). How many lattice points are visible from corner at (0,0,0) ? A point X is visible from point Y iff no other latti...

菜鸡的博客 245

解题报告:SPOJ - VLATTICE Visible Lattice Points 莫比乌斯反演

题目链接 题意: 有一个边长为n的立方体,你位于(0,0,0)处,问能看见的格子数目。 某个格子能被看见当且仅当它与原点的连线上不存在其他的格子。 思路: 之前做过一个二维的版本:HDU2841 Visible Trees 莫比乌斯反演 思路是差不多的,分成三个部分求: 对于(x!=0&&y!=0&&z!=0)的所有点,要求 gcd(x,y,z)==1的点数

Hee的博客~ 337
上一篇: Cutting Codeforces Round #493 (Div. 2)(贪心+思维)
下一篇: cf 997c Sky Full of Stars(组合数+容斥原理)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值