【BZOJ1101】[POI2007]Zap

2023-11-07 18:58
文章标签 poi2007 zap bzoj1101

本文主要是介绍【BZOJ1101】[POI2007]Zap,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题解:
莫比乌斯反演
这里写图片描述
这里将N和M分别替换为N/d向下取整和M/d向下取整即可

//by sdfzchy
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long LL;
const int inf=(1<<30),N=100010;
int n,m;
inline int in()
{char ch=getchar();int f=1,tmp=0;while(ch<'0'||ch>'9') {if(ch=='-') f=-1;ch=getchar();}while(ch>='0'&&ch<='9') {tmp=(tmp<<1)+(tmp<<3)+(ch-'0');ch=getchar();}return tmp*f;
}
int pri[N],pcnt,miu[N+10],sum[N+10];
bool ok[N+10];void init()
{miu[1]=1;for(int i=2;i<=N;i++){if(!ok[i]) pri[++pcnt]=i,miu[i]=-1;for(int j=1;j<=pcnt&&(LL)i*pri[j]<=N;j++){ok[i*pri[j]]=1;if(i%pri[j]==0) {miu[i*pri[j]]=0;break;}miu[i*pri[j]]=-miu[i];}}for(int i=1;i<=N;i++) sum[i]=sum[i-1]+miu[i];
}LL cal(int x,int y)
{if(x>y) swap(x,y);LL ans=0;for(int i=1,p;i<=x;i=p+1){p=min(x/(x/i),y/(y/i));ans+=((LL )sum[p]-sum[i-1])*(x/i)*(y/i);}return ans;
}
int a,b,k;
int main()
{init();int T=in();while(T--){a=in(),b=in(),k=in();printf("%lld\n",cal(a/k,b/k));}return 0;
}

这篇关于【BZOJ1101】[POI2007]Zap的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/365628

相关文章

【网络安全学习】漏洞扫描:-04- ZAP漏洞扫描工具

**ZAP(Zed Attack Proxy)**是一款由OWASP组织开发的免费且开源的安全测试工具。 ZAP支持认证、AJAX爬取、自动化扫描、强制浏览和动态SSL证书等功能。 1️⃣ 安装zap工具 现在的kali版本不一定会预装zap,我们可以自行安装,安装也十分简单。 apt-get install zaproxy -y 安装完成后,点击左上角的图标,搜索zap,点击打开即可

一文理清GO语言日志库实现开发项目中的日志功能(rotatelogs/zap分析)

一文理清GO语言日志库实现开发项目中的日志功能(rotatelogs/zap分析) rotatelogs rotatelogs 是一个用于管理日志文件的 Go 语言库,它提供了自动轮换、压缩和删除旧日志文件的功能。这个库可以帮助你更好地管理和维护你的应用程序日志。要使用 rotatelogs,你需要先安装它: go get -u github.com/lestrrat-go/file-rot

【Go】十、路由配置以及ZAP 高性能日志库的使用

Project 目录创建 mxshop-api user-web api ---- 服务接口 config ---- 配置信息 forms ---- 表单验证信息 global ---- 全局信息 initialize ---- 初始化信息 middlewares ---- 中间件信息 proto ---- 数据信息 router ---- 路由信息 utils ---- 公用工具信息

Go语言快速上手Zap日志库

1. Zap日志库简介 Zap是由Uber开源的Go语言日志库,以其高性能和易用性在Go社区中广受欢迎。它提供了丰富的日志记录功能,包括不同级别的日志记录、结构化日志输出、日志轮转等。对于Go语言开发者来说,Zap是一个非常好的选择,特别是在需要处理大量日志数据的应用场景中。 2. Zap的安装与导入 要在Go项目中使用Zap,首先需要安装它。可以使用Go的包管理工具go get来安装Z

一文了解重塑代币发行方式的创新平台 — ZAP

代币的发行方式对加密市场有着重要的影响,它直接影响着项目的社区建设、流动性、价格稳定性以及投资者的参与度,未来预期等!合适的发行方式可以吸引更多的投资者和用户参与,提升项目的社区建设和价值实现。不当的发行方式和分配,可能导致代币价格的波动和投资者信任的丧失。 目前主流的分配方式大多根据机会、资本或网络进行分配,散户投资者无法参与早期的代币发行,即使能够参与也面临着较高的门槛和资金风险,在市场

3. 在Go语言项目中使用Zap日志库

文章目录 一、介绍二、 默认的Go Logger1. 实现Go Logger2. 设置Logger3. 使用Logger4. Logger的运行5. Go Logger的优势和劣势 三、Uber-go Zap1. 为什么选择Uber-go zap2. 安装3. 配置Zap Logger4. 定制logger4.1 将日志写入文件而不是终端4.2 将JSON Encoder更改为普通的Log

4. 使用zap替换gin框架默认的日志并配置日志切割

文章目录 一、gin默认的中间件二、基于zap的中间件三、在gin项目中使用zap 本文将介绍在基于gin框架开发的项目中如何配置并使用zap来接收gin框架默认的日志以及如何配置日志切割。 我们在基于gin框架开发项目时通常都会选择使用专业的日志库来记录项目中的日志,go语言常用的日志库有zap、logrus等。我们该项目中使用zap。 我们该如何在日志中记录gin框架本身输

【bzoj1103】【POI2007】【大都市】

Description 在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了。不过,她经常回忆起以前在乡间漫步的情景。昔日,乡下有依次编号为1..n的n个小村庄,某些村庄之间有一些双向的土路。从每个村庄都恰好有一条路径到达村庄1(即比特堡)。并且,对于每个村庄,它到比特堡的路径恰好只经过编号比它的编号小的村庄。另外,对于所有道路而言,它们都不

BZOJ 1101 Luogu P3455 POI 2007 Zap (莫比乌斯反演+数论分块)

BZOJ 1101 Luogu P3455 POI 2007 Zap (莫比乌斯反演+数论分块) 手动博客搬家: 本文发表于20171216 13:34:20, 原地址https://blog.csdn.net/suncongbo/article/details/78819470 URL: (Luogu)https://www.luogu.org/problem/show?pid=345

BZOJ1101:[POI2007]Zap——反演模板

Description   FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d。作为FGD的同学,FGD希望得到你的帮助。 Input   第一行包含一个正整数n,表示一共有n组询问。(1<=n<= 50000)接下来n行,每行表示一个询问,每行三个正整数,分别为a,b,d。(1<=d<=a,b<