HYSBZ - 2301 莫比乌斯反演
2024-09-01 15:03:05
题解:直接用公式算,用容斥来减掉重复计算的部分
但是我犯了一个非常sb的错误,直接把abcd除k了,这样算a-1的时候就错了,然后举的例子刚好还没问题= = ,结果wa了好几发
//#pragma comment(linker, "/stack:200000000")
//#pragma GCC optimize("Ofast,no-stack-protector")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define pi acos(-1.0)
#define ll long long
#define mod 1000000007
#define C 0.5772156649
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#define pil pair<int,ll>
#define pii pair<int,int>
#define ull unsigned long long
#define base 1000000000000000000
#define fio ios::sync_with_stdio(false);cin.tie(0) using namespace std; const double g=10.0,eps=1e-;
const int N=+,maxn=+,inf=0x3f3f3f3f; int mu[N],prime[N],sum[N];
bool mark[N];
int cnt;
void init()
{
mu[]=;
cnt=;
for(int i=;i<N;i++)
{
if(!mark[i])prime[++cnt]=i,mu[i]=-;
for(int j=;j<=cnt;j++)
{
int t=i*prime[j];
if(t>N)break;
mark[t]=;
if(i%prime[j]==){mu[t]=;break;}
else mu[t]=-mu[i];
}
}
for(int i=;i<N;i++)sum[i]=sum[i-]+mu[i];
}
ll cal(int n,int m)
{
ll ans=;
for(int i=,last;i<=min(n,m);i=last+)
{
last=min(n/(n/i),m/(m/i));
ans+=(ll)(sum[last]-sum[i-])*(n/i)*(m/i);
}
return ans;
}
int main()
{
init();
int t;
scanf("%d",&t);
while(t--)
{
ll a,b,c,d,k;
scanf("%lld%lld%lld%lld%lld",&a,&b,&c,&d,&k);
printf("%lld\n",cal(b/k,d/k)-cal((a-)/k,d/k)-cal((c-)/k,b/k)+cal((a-)/k,(c-)/k));
}
return ;
}
/******************** ********************/
最新文章
- css common 通用
- unity自带寻路Navmesh入门教程(二)
- vtk renderer / rendering 绘制
- ZUI前段框架简介
- Linux mount/unmount命令(转)
- android与后台请求的例子
- ubuntu下配置hosts
- [模板总结] Java的一些模板
- 《点石成金-访客至上的web和移动可用性设计秘籍》读书笔记
- Ubuntu之网络配置
- Google+ 技巧四则
- repeater控件 + marquee标签 实现文字滚动显示
- redis: 6379端口下set值时出现 CLUSTERDOWN The cluster is down
- Javascript计算密码的强度
- wamp出现问题#1045 - Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: NO)的解决方法
- ByteBuffer的allocate和allocateDirect
- MVC5 Entity Framework学习之实现继承
- Transform 位置 旋转
- Spring源码:IOC原理解析(二)
- 并发库应用之十 &; 多线程数据交换Exchanger应用