首页 > 其他分享 >春季测试 2023 幂次

春季测试 2023 幂次

时间:2023-03-04 22:57:12浏览次数:32  
标签:10 le return 幂次 ll ans mid 春季 2023

**F出原题

\(3\le k\) 时,\(a\le 10^6\) 可以暴力统计答案,对于重复的贡献可以用类似筛法的东西去维护,因为每个数只会被筛一次,所以是 \(O(n)\) 的,但是统计答案要带一个常数。

\(2 \le k\) 时,对于 \(a\le 10^6\) 的部分用上文的方法筛去即可,对于 \(10^6 < a \le 10^9\) ,\(k\) 只能为 \(2\) ,所以用 \(a\le 10^6\) 中未筛去的来求 \(10^6 < a \le 10^9\) 中筛去的个数,简单容斥一下即可。


#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define INT __int128

ll n,k;
bool vis[10000001];

bool chk(ll x){
    INT s=1,ss=x,ends=n;
    for(ll i=1; i<=k; i++){
        s=s*ss;
        if(s>ends)return 0;
    }
    return 1;
}

// <=1e6
ll calc(ll num){
    ll ans=1;
    for(ll i=2; i<=num; i++){
        if(vis[i])continue;
        INT s=1,ss=i,ED=n,ed=num;
        ll cnt=0;
        while(1){
            if(s<=ED&&cnt>=k)ans++;
            cnt++,s=s*ss;
            if(s>ED)break;
            if(s<=ed&&s!=ss)vis[s]=1;
        }
    }
    return ans;
}

// >1e6
ll maxcalc(ll num){
    if(num<=1000000ll||k>2ll)return calc(num);
    ll sum=calc(1000000ll);
    ll cnt=num-1000000ll,ans=0;
    for(ll i=2; i<=1000000ll; i++){
        if(vis[i])continue;
        INT s=1,ss=i,st=1000000,ed=num;
        while(1){
            if(s>st)ans++;
            s=s*ss;
            if(s>ed)break;
        }
    }
    return (cnt-ans)+sum;
}

int main(){
    scanf("%lld%lld",&n,&k);
    if(k==1){cout<<n<<endl;return 0;}
    ll l=1,ans=1,r=1000000000ll;
    while(l<=r){
        ll mid=((l+r)>>1ll);
        if(chk(mid))ans=mid,l=mid+1;
        else r=mid-1;
    }
    cout<<maxcalc(ans)<<endl;
    return 0;
}

标签:10,le,return,幂次,ll,ans,mid,春季,2023
From: https://www.cnblogs.com/dadidididi/p/17179395.html

相关文章

  • 2023/3/4 C#学习笔记
    调试方法1、调试工具栏,逐语句stepinto,逐过程stepover,跳出stepout;编写方法2、VisualStudio的重构代码功能:要在应用程序中多个位置写相同的或非常相似的代码时,选定方......
  • 2023/3/4 NOI春季测试游记
    高中第一次参加正式比赛……挺紧张的,不过在家附近的连大比又没那么紧张其实(再说19年也比过)……Day-114514知道了NOIP要延期,感觉我这种小萌新也能去见识见识大场面了,......
  • 2023 NOI春季测试游记
    坐标:HE背景:因NOIP取消,所以变成了春季赛。\(Day\;0\)中午坐火车去火车站,坐了三个小时的车到了考点,路上是真的一点没卷……晚上到酒店,教练还请我们吃自助餐,虽然但是......
  • 会声会影2023旗舰版 v26.0.0.136 x64中文特别版支持多语言版
    会声会影2023旗舰版v26.0.0.136x64中文特别版支持多语言版参考:​​https://www.sohu.com/a/649529243_121324361​​会声会影2023中文旗舰版CorelVideoStudio是一款功......
  • 2023.3.4 NOI春季赛游记
    2023.3.3Day-1本来想着去机房试试小黑屋的Linux顺便敲点板子然后正好因为腿疼拿到了体活课的假条就直接体活+自习+晚自习一起翘掉去机房了晚上6点他们去吃饭我下楼......
  • 跨屏建站平台2023.3.4发布更新,启用了新logo
    跨屏建站平台2023.3.4发布更新,启用了新logo,网站整体风格布局进行了比较大的调整,走的是极简设计风格,最大的变化是网站变得更加简洁了,网站采用极简设计的好处很多,不仅耐看,而......
  • NOI2023 春季测试游寄
    \(\mathtt{20221126}\)记:\(\text{noip}\)今天比赛,陕西取消,准备明年三月的春季测试(\(\text{noip}\)替代品)。\(\mathtt{20230218}\):https://www.noi.cn/xw/2022-12-14/......
  • 2023 春赛
    前言我原本打算写这么一个题记:“经过考量,我认为,这是我的题记。经审查,通过。”但发现我的复盘报告的套路是前言。那么,这就是我的前言。经审查,通过。赛时复原约......
  • noi春季赛2023游记
    赛场看到题,无力吐槽T1模拟就完了,写了1.5h,居然还有提醒“道路千万条,清零第一条。多测不清空,爆零两行泪”这种提醒,给我看傻了T2好像可以用容斥,不过我把完全平方数单算,再把......
  • 2023.3.4——软件工程日报
    所花时间(包括上课):0h代码量(行):0行博客量(篇):1篇今天,上午学习计算机网络与概率论,下午学习web技术。我了解到的知识点:1.了解了一些python的知识:python学习——set集合,sorte......