[SDOI2014]数表
链接:https://www.luogu.com.cn/problem/P3312
题目描述:求
题解:我们先会有一个直观的想法:先不考虑的限制:
如果你这么推就推不下去了。
考虑换一种思路,将看作一个不能拆开的函数:
我们可以将所有数按的值排序,将询问也按排序,用树状数组处理贡献即可。
#include<iostream>
#include<algorithm>
#define N 100000
using namespace std;
struct node
{
long long x,y,a,num;
bool operator < (const node &t)const
{
return a<t.a;
}
};
struct reads
{
long long num,data;
bool operator < (const reads &a)const
{
return data<a.data;
}
};
node query[1000001];
reads top[1000001];
long long c[1000001],res,f[1000001],miu[1000001],mod;
unsigned long long ans[1000001];
bool prime[1000001];
int lowbit(int x)
{
return x&(-x);
}
void add(int x,int y)
{
for (;x<=N;x+=lowbit(x))
c[x]+=y;
return;
}
long long sum(int x)
{
res=0;
for (;x>=1;x-=lowbit(x))
res+=c[x];
return res;
}
void prework()
{
for (int i=1;i<=N;++i)
miu[i]=1;
for (int i=2;i<=N;++i)
if (!prime[i])
for (int j=i;j<=N;j+=i)
{
prime[j]=1;
if ((j/i)%i==0)
miu[j]=0;
miu[j]=-miu[j];
}
for (int i=1;i<=N;++i)
for (int j=i;j<=N;j+=i)
f[j]+=i;
for (int i=1;i<=N;++i)
{
top[i].num=i;
top[i].data=f[i];
}
sort(top+1,top+N+1);
return;
}
int main()
{
prework();
int t,pos=0,last;
mod=(1ll<<31);
cin>>t;
for (int i=1;i<=t;++i)
{
cin>>query[i].x>>query[i].y>>query[i].a;
query[i].num=i;
}
sort(query+1,query+t+1);
for (int q=1;q<=t;++q)
{
while (pos<N&&top[pos+1].data<=query[q].a)
{
pos++;
for (int i=top[pos].num;i<=N;i+=top[pos].num)
add(i,top[pos].data*miu[i/top[pos].num]);
}
for (int i=1;i<=min(query[q].x,query[q].y);i=last+1)
{
last=min(query[q].x/(query[q].x/i),query[q].y/(query[q].y/i));
ans[query[q].num]=(ans[query[q].num]+(query[q].x/i)*(query[q].y/i)%mod*(sum(last)-sum(i-1))%mod)%mod;
}
}
for (int q=1;q<=t;++q)
cout<<ans[q]<<endl;
return 0;
}
作者:zhouhuanyi
出处:https://www.cnblogs.com/zhouhuanyi/p/16983631.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具