[ZOJ3435]Ideal Puzzle Bobble
2024-08-20 22:43:45
题面戳我
题意:你现在处于\((1,1,1)\),问可以看见多少个第一卦限的整点。
第一卦限:就是\((x,y,z)\)中\(x,y,z\)均为正
sol
首先L--,W--,H--
,然后答案就变成了
\[\sum_{i=1}^{L}\sum_{j=1}^{W}\sum_{k=1}^{H}[\gcd(i,j,k)==1]+\sum_{i=1}^{L}\sum_{j=1}^{W}[\gcd(i,j)==1]
\]
\]
\[+\sum_{i=1}^{L}\sum_{j=1}^{H}[\gcd(i,j)==1]+\sum_{i=1}^{W}\sum_{j=1}^{H}[\gcd(i,j)==1]+3
\]
\]
(加三是因为还有\((0,0,1),(0,1,0),(1,0,0)\)三个点)
所以直接做就行了。
第一个式子看上去有三个\(\sum\),但套路还是一样的,可以化成$$\sum_{i=1}^{\min(L,W,H)}\mu(i)\lfloor\frac Li\rfloor\lfloor\frac Wi\rfloor\lfloor\frac Hi\rfloor$$
数论分块走一波
code
#include<cstdio>
#include<algorithm>
using namespace std;
#define ll long long
const int N = 1000000;
int pri[N+5],tot,zhi[N+5],mu[N+5],L,W,H;
void Mobius()
{
zhi[1]=mu[1]=1;
for (int i=2;i<=N;i++)
{
if (!zhi[i]) pri[++tot]=i,mu[i]=-1;
for (int j=1;j<=tot&&i*pri[j]<=N;j++)
{
zhi[i*pri[j]]=1;
if (i%pri[j]) mu[i*pri[j]]=-mu[i];
else break;
}
}
for (int i=1;i<=N;i++) mu[i]+=mu[i-1];
}
ll calc(int n,int m)
{
int i=1;ll res=0;
while (i<=n&&i<=m)
{
int j=min(n/(n/i),m/(m/i));
res+=1ll*(n/i)*(m/i)*(mu[j]-mu[i-1]);
i=j+1;
}
return res;
}
int main()
{
Mobius();
while (scanf("%d %d %d",&L,&W,&H)!=EOF)
{
L--,W--,H--;
ll ans=0;int i=1;
while (i<=L&&i<=W&&i<=H)
{
int j=min(L/(L/i),min(W/(W/i),H/(H/i)));
ans+=1ll*(L/i)*(W/i)*(H/i)*(mu[j]-mu[i-1]);
i=j+1;
}
printf("%lld\n",ans+calc(L,W)+calc(L,H)+calc(W,H)+3);
}
return 0;
}
最新文章
- 硬盘安装linux的两条命令
- JS弹出模态窗口下拉列表特效
- [BI项目记]-对项目文件进行规划
- T-SQL Recipes之生成动态列表数据
- 使用visio 2007对现有的数据库进行反向工程
- SVN服务器安装
- 几组User-Agent
- 浅析php学习的路线图
- winform 渐变(非API)
- C# aspnetpager分页
- 4. printf 命令
- MEF 基础简介 二
- NOIP模拟赛10 题解
- Linux 僵尸进程
- hdu 5007 水题 (2014西安网赛A题)
- jQuery Sizzle选择器(三)
- Python递归实现汉诺塔
- 【转】用instruments来检验你的app
- 用公式编辑器编辑n元乘积的方法
- unittest实现批量处理测试集
热门文章
- Lua内存分析工具
- sql server两个时间段内,求出周末的量
- ubuntu16 ftp 服务 vsftp 配置
- return的新思考
- ASP.NET Core 使用 URL Rewrite 中间件实现 HTTP 重定向到 HTTPS
- Apache和Tomcat的区别与联系
- Springmvc 中org.springframework.http.converter.json.MappingJackson2HttpMessageConverter依赖jackson包
- Ubuntu14.04上安装Composer
- Qt 信号如何自动连接槽函数?
- hihoCoder Demo Day dp