zoukankan      html  css  js  c++  java
  • BZOJ2440: [中山市选2011]完全平方数

    2440: [中山市选2011]完全平方数

    Time Limit: 10 Sec  Memory Limit: 128 MB
    Submit: 4250  Solved: 2052
    [Submit][Status][Discuss]

    Description

    小 X 自幼就很喜欢数。但奇怪的是,他十分讨厌完全平方数。他觉得这些
    数看起来很令人难受。由此,他也讨厌所有是完全平方数的正整数倍的数。然而
    这丝毫不影响他对其他数的热爱。 
    这天是小X的生日,小 W 想送一个数给他作为生日礼物。当然他不能送一
    个小X讨厌的数。他列出了所有小X不讨厌的数,然后选取了第 K个数送给了
    小X。小X很开心地收下了。 
    然而现在小 W 却记不起送给小X的是哪个数了。你能帮他一下吗?

    Input

    包含多组测试数据。文件第一行有一个整数 T,表示测试
    数据的组数。 
    第2 至第T+1 行每行有一个整数Ki,描述一组数据,含义如题目中所描述。 

    Output

    含T 行,分别对每组数据作出回答。第 i 行输出相应的
    第Ki 个不是完全平方数的正整数倍的数。

    Sample Input

    4
    1
    13
    100
    1234567

    Sample Output

    1
    19
    163
    2030745

    HINT

    对于 100%的数据有 1 ≤ Ki ≤ 10^9

    ,    T ≤ 50

    思路{

      明显满足二分的性质,考虑如何计算之前有多少个数.

      设F(i)[1,n]中整除(i^2)的数的个数F(i)=( n/ (i*i) )

      那么容斥原理,Ans=(sqrt(n))∑(d=1) μ(d)*(n/(d*d))

      其实莫比乌斯本质上就是一个容斥.

    }

    #include<bits/stdc++.h>
    #define LL long long
    #define RG register
    #define il inline
    #define N 50010
    #define LL long long
    #define Inf (1<<30)
    using namespace std;
    bool vis[N];int mu[N],p[N];
    void pre(){
      mu[1]=1;
      for(int i=2;i<N;++i){
        if(!vis[i])p[++p[0]]=i,mu[i]=-1;
        for(int j=1;j<=p[0]&&p[j]*i<N;++j){
          vis[i*p[j]]=true;
          if(i%p[j])mu[i*p[j]]=-mu[i];
          else {mu[i*p[j]]=0;break;}
        }
      }
    }
    LL check(LL x){LL ans(0);
      for(int i=1;i*i<=x;++i)
        ans+=mu[i]*(x/(i*i));
      return ans;
    }
    int main(){
      pre();int T;scanf("%d",&T);
      while(T--){
        LL k;scanf("%lld",&k);
        LL l=1,r=Inf;r*=2;
        while(l<=r){
          LL mid=(l+r)>>1;
          if(check(mid)<k)l=mid+1;
          else r=mid-1;
        }cout<<((l+r)>>1)+1<<"
    ";
      }return 0;
    }
    

      

  • 相关阅读:
    UVALive 5983 MAGRID DP
    2015暑假训练(UVALive 5983
    poj 1426 Find The Multiple (BFS)
    poj 3126 Prime Path (BFS)
    poj 2251 Dungeon Master 3维bfs(水水)
    poj 3278 catch that cow BFS(基础水)
    poj3083 Children of the Candy Corn BFS&&DFS
    BZOJ1878: [SDOI2009]HH的项链 (离线查询+树状数组)
    洛谷P3178 [HAOI2015]树上操作(dfs序+线段树)
    洛谷P3065 [USACO12DEC]第一!First!(Trie树+拓扑排序)
  • 原文地址:https://www.cnblogs.com/zzmmm/p/7477065.html
Copyright © 2011-2022 走看看