社区讨论

t2民间数据80求找锅

学术版参与者 4已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@lo31621y
此快照首次捕获于
2023/10/23 23:06
2 年前
此快照最后确认于
2023/10/23 23:06
2 年前
查看原帖
CPP
//别挂分求求了
#include<iostream>
#include<cmath>
#define int unsigned long long
using namespace std;
const int N=10000005;
int n,k;
int ans;
int del[105];
int qpow(int a,int b){
    int res=1;
    for(;b;b>>=1,a*=a) if(b&1) res*=a;
    return res;
}
int find(int x){
    int l=2,r=1000000000;
    int res=0;
    while(l<=r){
        //printf("%lld %lld %lld\n",x,l,r);
        int mid=(l+r)>>1;
        if(x<=log2(n)/log2(mid)) res=mid,l=mid+1;
        else r=mid-1;
    }
    return res;
}
signed main(){
    //freopen("power.in","r",stdin);
    //freopen("power.out","w",stdout);
    scanf("%llu%llu",&n,&k);
    ans=1;
    for(int i=log2(n);i>=k;i--){
        int t=find(i);
        for(int j=2;j<i;j++) if(i%j==0) del[j]+=(t-1-del[i]);
        ans+=(t-1-del[i]);
        //printf("%lld %lld %lld\n",t,i,ans);
    }
    printf("%llu\n",ans);
    return 0;
}

回复

6 条回复,欢迎继续交流。

正在加载回复...