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;
}
飞书云文档API操作详细介绍 开通云文档API、python程序调用飞书api、飞书获取app_id和app_secret、 阅读详情

相关推荐

Ubuntu24.04下Librenms的完整安装与配置指南

本文提供了在Ubuntu 24.04 LTS系统上完整安装与配置LibreNMS网络监控系统的详细指南。内容涵盖系统环境准备、依赖安装、源码获取、PHP/数据库/Nginx配置、Composer安装、网页向导设置以及设备添加与日常使用,帮助用户快速部署一套功能强大的开源网络监控解决方案。

tgb3456789的博客 1137

[欧拉函数]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

告别轮询!用STM32CubeMX给STM32F030配置ADC多通道+DMA,实测代码分享

本文详细介绍了如何使用STM32CubeMX为STM32F030配置ADC多通道采集与DMA传输,显著提升采集效率。通过实测对比轮询与DMA模式的性能差异,提供完整的代码实现和优化技巧,帮助开发者快速掌握这一高效采集方案。

weixin_42570296的博客 409

Visible Lattice Points (欧拉函数)

Visible Lattice Points (欧拉函数)

GreenAppple的专栏 1558

工业金属表面缺陷检测:4种光学成像方案(明/暗/漫/背光)选型与实测对比

本文深入探讨工业金属表面缺陷检测中的4种光学成像方案(明/暗/漫/背光),详细解析其物理原理、适用场景及实测效果。通过对比不同照明方案在铝合金轮毂、不锈钢餐具等实际工业场景中的表现,提供科学的选型决策树,帮助提升缺陷检出率至99%以上,为计算机视觉在工业质检领域的应用提供实用指南。

weixin_33624741的博客 387

esp32 python开发环境搭建_eclipse esp32开发环境搭建

安装方法基本是按照官网提供的方法来操作https://github.com/espressif/idf-eclipse-plugin#GettingStarted但是官网的方法安装之后还是不能编译成功的,第一次编译会出现一下问题问题1:Building in: E:\eclipse-workspace\helloworlk\buildcmake -G Ninja -DCMAKE_TOOLCHAIN...

weixin_39978276的博客 1262

【数论系列】 欧拉函数

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

这里是阿安的博客 1031

如何通过单步调试的方法,找到 SAP Gateway 到底把 Fiori 应用发送的 OData 请求,投递到哪一台 ABAP 后台服务器了?

这是一个 Count 请求,得到服务器响应的数据是 204,这个 204 会以数字的形式,显示在 Fiori Launchpad tile 上。那如果当前 Gateway 系统可以连接到多台 ABAP 后台服务器,比如下图所示,可以连接 SAP S/4HANA,ERP 或者 SAP CRM,我怎么知道 SAP UI5 应用上显示的数据,到底来自哪一台 ABAP 后台服务器呢?,就是上图 ABAP 调试器里断点停留的位置,即 SAP Frontend 服务器,通过 RFC 将 OData 请求投递给。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 640

欧拉函数 - 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

【YOLOv11改进 - 特征融合】SDI:多层次特征融合模块,替换contact操作

【YOLOv11改进 - 特征融合】SDI:多层次特征融合模块,替换contact操作

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 1769

计算图像哈希SHA-512

上述需要将lena.jpg放在当前目录下。

计算机视觉之光 960

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

杰理AC695N芯片跑iic接口的oled驱动分享

本文介绍了一个基于IIC接口的0.96寸OLED显示屏驱动程序,适用于SSD1306控制器。驱动采用软件模拟IIC方式,支持字符、数字、字符串、汉字和图片显示,测试平台为杰理AC695N系列芯片。硬件参数包括128×64分辨率,IIC接口(地址0x78),使用IO_PORTA_02(SDA)和IO_PORTA_03(SCL)引脚。驱动包含OLED主文件(oled.c/h)、软件IIC实现(soft_iic.c/h)和字体/图片数据文件(oledfont.h/bmp.h),可通过修改soft_iic.h中的引

qq_42014563的博客 882

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

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

[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

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

莫比乌斯反演 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、付费专栏及课程。

余额充值