2019ICPC 银川 D.Easy Problem(反演)


Easy Problem



图片说明



当时现场赛因为题我推的公式,化简的时候,出现了这个错误,导致找bug找了2个小时。
A掉之后已经没有时间写题了,学了这么久的数论,题真的是再简单不过的反演了,但是策略有问题,加上化简公式时出现的错误,没来的及写,真的很可惜。

图片说明
最后用欧拉降幂,线性筛即可。


#include<bits/stdc++.h>
#define me(a,x) memset(a,x,sizeof(a))
#define sc scanf
using namespace std;
const int N=1e5+5;
const int mod=59964251;
typedef long long ll;
ll ksm(ll a,ll b,ll c){ll ans=1;for(;b;b>>=1,a=a*a%c)if(b&1)ans=ans*a%c;return ans;}
const int p=59870352;
char s[N];
ll f[N];
short int mu[N];
int prime[N],tot=0;
bool vis[N];
void pre(int k){
    me(vis,0);tot=0;
    mu[1]=1;f[1]=1;
    for(int i=2;i<N;i++){
        if(!vis[i])prime[++tot]=i,mu[i]=-1,f[i]=ksm(i,k,mod);
        for(int j=1;j<=tot&&i*prime[j]<N;j++){
            vis[i*prime[j]]=1;
            f[i*prime[j]]=f[i]*f[prime[j]]%mod;
            if(i%prime[j]==0){
                mu[i*prime[j]]=0;
                break;
            }
            mu[i*prime[j]]=-mu[i];
        }
    }
    for(int i=1;i<N;i++)f[i]=(f[i-1]+f[i])%mod;
}
int main(){
    int T;cin>>T;
    while(T--){
        int m,d,k;
        sc("%s%d%d%d",s,&m,&d,&k);
        pre(k);
        bool flag=0;
        ll n=0;
        for(int i=0;s[i];i++){
            n=n*10+s[i]-'0';
            if(n>p)n%=p,flag=1;
        }
        ll ans=0;
        for(int t=1;t<=m/d;t++){
            if(flag){
                ll x=mu[t]*ksm(t*d,n*k%p+p,mod);
                x=x*ksm(f[m/(d*t)],n+p,mod)%mod;
                ans+=x;
                ans=(ans%mod+mod)%mod;
            }else{
                ll x=mu[t]*ksm(t*d,n*k,mod);
                x=x*ksm(f[m/(d*t)],n,mod)%mod;
                ans+=x;
                ans=(ans%mod+mod)%mod;
            }
        }
        printf("%lld\n",ans);
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
03-19 10:38
实力求职者:真的绷不住了,第一张霸总人设,第二张求生欲拉满
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
6285次浏览 59人参与
# 你的实习产出是真实的还是包装的? #
1278次浏览 30人参与
# 米连集团26产品管培生项目 #
4670次浏览 206人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7066次浏览 37人参与
# 简历第一个项目做什么 #
31317次浏览 315人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186517次浏览 1115人参与
# MiniMax求职进展汇总 #
23197次浏览 300人参与
# 研究所笔面经互助 #
118783次浏览 577人参与
# 面试紧张时你会有什么表现? #
30416次浏览 188人参与
# 简历中的项目经历要怎么写? #
309555次浏览 4162人参与
# 职能管理面试记录 #
10722次浏览 59人参与
# AI时代,哪些岗位最容易被淘汰 #
62679次浏览 745人参与
# 网易游戏笔试 #
6371次浏览 83人参与
# 把自己当AI,现在最消耗你token的问题是什么? #
6982次浏览 154人参与
# 腾讯音乐求职进展汇总 #
160429次浏览 1106人参与
# 从哪些方向判断这个offer值不值得去? #
56712次浏览 357人参与
# 正在春招的你,也参与了去年秋招吗? #
362721次浏览 2631人参与
# 你怎么看待AI面试 #
179403次浏览 1181人参与
# 小红书求职进展汇总 #
226896次浏览 1356人参与
# 你的房租占工资的比例是多少? #
92144次浏览 896人参与
# 校招笔试 #
467547次浏览 2954人参与
# 经纬恒润求职进展汇总 #
155712次浏览 1085人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务