bzoj 3739 DZY loves math VIII
来源:互联网 发布:数据恢复软件正式版 编辑:程序博客网 时间:2024/06/05 04:53
3739: DZY loves math VIII
Time Limit: 25 Sec Memory Limit: 512 MB
Submit: 318 Solved: 50
[Submit][Status][Discuss]
Description
在XYZ的dzy loves math6问世后,dzy一直觉得这道题答案太大,一点都不优美,于是他随手在外面套上一个μ。同时,他又觉得输入两个数实在太麻烦,于是题目变成了,你能解决这个问题吗?
Input
第一行一个整数T表示询问组数,接下来T行每行一个整数n。
Output
对于每一个询问输出一行表示答案
Sample Input
1
2
Sample Output
0
HINT
T<=10^3 n<=10^7
Source
【分析】
稍微想一下
gcd(i,j)>1的情况下
所以直接考虑
所以原式为
然后繁衍繁衍,乱搞一发,暴搜+nlogn=O(能过)
所以这题就是考你怎么求一个鬼畜的式子还不TLE
【代码】
//bzoj 3739 DZY loves math VIII#include<cstdio>#include<cstring>#include<iostream>#define N 10000000#define ll long long#define fo(i,j,k) for(i=j;i<=k;i++)using namespace std;const int mxn=10000005;int n,m,T,cnt;int vis[mxn],pri[mxn],miu[mxn],sum[mxn],f[mxn],a[mxn];inline int read(){ int x=0;char ch=getchar(); while(ch<'0'||ch>'9') ch=getchar(); while(ch>='0'&&ch<='9') x=(x<<1)+(x<<3)+ch-'0',ch=getchar(); return x;}inline void init(){ int i,j; miu[1]=1; fo(i,2,N) { if(!vis[i]) vis[i]=pri[++pri[0]]=i,miu[i]=-1; for(j=1;j<=pri[0] && (ll)i*pri[j]<=N;j++) { vis[i*pri[j]]=pri[j]; if(i%pri[j]==0) break; miu[i*pri[j]]=-miu[i]; } }}inline int dfs(int k,int x,int v){ if(k>cnt) { f[x]+=v;return miu[x]*f[x]; } return dfs(k+1,x*a[k],v)+dfs(k+1,x,v);}int main(){ init(); int i,j; fo(i,1,N) { sum[i]+=sum[i-1]; if(miu[i]) { cnt=0; for(int x=i;x>1;x/=vis[x]) a[++cnt]=vis[x]; sum[i]+=miu[i]*dfs(1,1,miu[i]); } } T=read(); while(T--) { n=read(); printf("%d\n",sum[n]); } return 0;}
阅读全文
0 0
- bzoj 3739 DZY loves math VIII
- 【bzoj 3739】DZY loves math VIII - 乱搞数学题
- bzoj 3739: DZY loves math VIII (数学)
- BZOJ3739: DZY loves math VIII
- bzoj 3309 DZY Loves Math
- DZY Loves Math [Bzoj 3309]
- BZOJ 3309: DZY Loves Math
- bzoj 3309: DZY Loves Math
- BZOJ 3309 DZY Loves Math
- bzoj3739 DZY loves math VIII 莫比乌斯函数
- 【线性筛】【bzoj 3309】: DZY Loves Math
- BZOJ 3560 DZY Loves Math V 数论
- BZOJ 3560 DZY Loves Math V
- 【BZOJ 3560】DZY loves Math V
- BZOJ 3512: DZY Loves Math IV
- [杜教筛] BZOJ 3512 DZY Loves Math IV
- 【BZOJ 3560】【数论】DZY Loves Math V
- bzoj 3309: DZY Loves Math (反演)
- java的System.getProperty()方法可以获取的值
- 移动端轮播:swiper插件(触碰图片之后停止轮播)
- 费用分摊分配用法(KSU5/KSV5/KB21N/KB11N)
- 中位数
- Java.util.ConcurrentModificationException
- bzoj 3739 DZY loves math VIII
- mysql实现编号及mysql实现排名
- jquery给某个标签如<button>等,添加点击事件,$("#XX").click(function(){ });
- Dagger2的简单使用
- SimpleDateFormat 实现 Date 和 String 之间的转换
- C# 中的委托和事件
- 你的课新媒体营销是怎么敲醒沉睡的传统卖场群体
- 消除“Permission is only granted to system apps”错误
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制