• 【bzoj2440】 中山市选2011—完全平方数


    http://www.lydsy.com/JudgeOnline/problem.php?id=2440 (题目链接)

    题意

      求第K个不含有完全平方因子的数

    Solution

      没想到莫比乌斯还可以用来容斥,好6啊。右转题解→_→:LCF

      蜜汁被狙人:jump

    细节

      LL,还TLE了2发。。。

    代码

    // bzoj2440
    #include<algorithm>
    #include<iostream>
    #include<cstdlib>
    #include<cstring>
    #include<cstdio>
    #include<vector>
    #include<cmath>
    #define LL long long
    #define inf 2147483640
    #define Pi acos(-1.0)
    #define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
    using namespace std;
    
    const int maxn=1000010;
    int mu[maxn],vis[maxn],p[maxn],K;
    
    int sigema(int k) {
    	int ans=0;
    	for (int i=1;i*i<=k;i++) ans+=mu[i]*(k/(i*i));
    	return ans;
    }
    int main() {
    	mu[1]=1;
    	for (int i=2;i<maxn;i++) {
    		if (!vis[i]) p[++p[0]]=i,mu[i]=-1;
    		for (int j=1;j<=p[0] && p[j]*i<maxn;j++) {
    			vis[p[j]*i]=1;
    			if (i%p[j]==0) {mu[p[j]*i]=0;break;}
    			else mu[p[j]*i]=-mu[i];
    		}
    	}
    	int T;scanf("%d",&T);
    	while (T--) {
    		scanf("%d",&K);
    		int l=0,r=inf,ans;
    		while (l<=r) {
    			int mid=((LL)l+r)>>1;
    			if (sigema(mid)<K) l=mid+1;
    			else ans=mid,r=mid-1;
    		}
    		printf("%d
    ",ans);
    	}
    	return 0;
    }
    
  • 相关阅读:
    mysql 主从配置
    doGet和doPost的区别
    我的第一个MVC项目
    c3p0xml配置详解
    c3p0连接数据库
    java加载资源文件
    Windows上部署Python
    Windows上部署Python
    NagiosQL安装
    Nagios Windows客户端NSClient++ 0.4.x安装配置
  • 原文地址:https://www.cnblogs.com/MashiroSky/p/6363929.html
Copyright © 2020-2023  润新知