传送门

题目描述:

给定整数n,q,计算 $q^{\sum_{d|n} C_{n}^{d}}$ mod 999911659。

输入格式

输入包括一行,包含两个整数n,q,用一个空格隔开。

输出格式

输出包括一行,包含一个整数表示最终结果。

数据范围

1≤n,q≤109

输入样例:

4 2

输出样例:

2048

提示:对于n的每一个正因数d,都有一个的值,将它们全部加起来得到的和就是

题解:经典题,用到的数学知识比较多。

代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 4e4 + ;
const ll mod = ;
ll fac[N] = {},n,q,b[];
int a[] = {,,,,};
ll qp(ll a,ll b) {
ll ans = ;
for (;b;b>>=,a=a*a%mod)
if (b&) ans = ans * a %mod;
return ans;
}
void exgcd(ll a,ll b,ll &x,ll &y) {
if (b == ) {
x = ;
y = ;
return ;
}
exgcd(b,a%b,y,x);
y -= (a/b)*x;
}
ll getinv(ll a,ll b) {
ll x,y;
exgcd(a,b,x,y);
return (x%b+b)%b;
}
ll lucas(ll x,ll p) {
ll ans = ;
for (ll y = n;x;x/=p,y/=p) {
ll a = x%p, b = y%p;
ans = ans*fac[b]%p*getinv(fac[a],p)%p*getinv(b<a?:fac[b-a],p)%p;
}
return ans;
}
int main(){
scanf("%lld%lld",&n,&q);
q%=mod;
if(!q) {
printf("0\n");
return ;
}
ll mod1 = mod -,ans = ,x,y;
for (ll i = ; i <= ; i++) fac[i] = fac[i-]*i%mod1;
for (ll i = ; i*i<=n; i++)
if (n%i==) {
for (int j = ; j <= ; j++)
b[j] = (b[j]+lucas(i,a[j]))%a[j];
if (i*i!=n) for (int j = ; j <= ; j++)
b[j] = (b[j]+lucas(n/i,a[j]))%a[j];
}
for (int i = ; i <= ; i++){
exgcd(mod1/a[i],a[i],x,y);
ans = (ans+x*(mod1/a[i])%mod*b[i])%mod1;
}
ans = (ans+mod1)%mod1;
ans = qp(q,ans);
printf("%lld\n", ans);
return ;
}

AcWing 213. 古代猪文 数学知识的更多相关文章

  1. bzoj 1951 [Sdoi2010]古代猪文 ——数学综合

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1951 数学综合题. 费马小定理得指数可以%999911658,又发现这个数可以质因数分解.所 ...

  2. [SDOI2010]古代猪文 (欧拉,卢卡斯,中国剩余)

    [SDOI2010]古代猪文 \(solution:\) 这道题感觉综合性极强,用到了许多数论中的知识: 质因子,约数,组合数 欧拉定理 卢卡斯定理 中国剩余定理 首先我们读题,发现题目需要我们枚举k ...

  3. BZOJ-1951 古代猪文 (组合数取模Lucas+中国剩余定理+拓展欧几里得+快速幂)

    数论神题了吧算是 1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1573 Solved: 650 [Submit ...

  4. BZOJ 1951: [Sdoi2010]古代猪文( 数论 )

    显然答案是G^∑C(d,N)(d|N).O(N^0.5)枚举N的约数.取模的数999911659是质数, 考虑欧拉定理a^phi(p)=1(mod p)(a与p互质), 那么a^t mod p = a ...

  5. 1951: [Sdoi2010]古代猪文

    1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 2171  Solved: 904[Submit][Status] ...

  6. BZOJ 1951: [Sdoi2010]古代猪文 [Lucas定理 中国剩余定理]

    1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 2194  Solved: 919[Submit][Status] ...

  7. 古代猪文:数论大集合:欧拉定理,exgcd,china,逆元,Lucas定理应用

    /* 古代猪文:Lucas定理+中国剩余定理 999911658=2*3*4679*35617 Lucas定理:(m,n)=(sp,tp)(r,q) %p 中国剩余定理:x=sum{si*Mi*ti} ...

  8. 洛咕 P2480 [SDOI2010]古代猪文

    洛咕 P2480 [SDOI2010]古代猪文 题目是要求\(G^{\sum_{d|n}C^d_n}\). 用费马小定理\(G^{\sum_{d|n}C^d_n\text{mod 999911658} ...

  9. BZOJ 1951 【SDOI2010】 古代猪文

    题目链接:古代猪文 好久没写博客了,这次就先写一篇吧…… 题面好鬼……概括起来就是:给出\(N,G(\leqslant 10^9)\),求:\[G^{\sum_{d|n}\binom{n}{d}} \ ...

随机推荐

  1. 各种浏览器的兼容css

    http://blog.csdn.net/wyx100/article/details/50450728 1.Mozilla内核[css]元素选择器{-moz-transition:运动的样式 持续时 ...

  2. Python--day27--内置函数isinstance和issubclass方法

  3. [转载]Eclipse luna tomcat 控制台 中文乱码

    http://hahalzb.iteye.com/blog/709109 今天做S2SH集成的例子,所有该设置的地方都设置成了UTF-8,包括tomcat的配置文件server.xml.web.xml ...

  4. 第一章 区块链系列 联盟链FISCO BCOS 底层搭建

    想了解相关区块链开发,技术提问,请加QQ群:538327407 FISCO BCOS 基础安装教程:https://fisco-bcos-documentation.readthedocs.io/zh ...

  5. Chrome 里的请求报错 " Provisional headers are shown"

    之所以会出现这个警告,是因为去获取该资源的请求其实并(还)没有真的发生; 背景:提交表单,按钮点击<button>标签,触发事件,ajax发送请求,服务器返回信息; <button& ...

  6. 2018-8-10-VisualStudio-自定义外部命令

    title author date CreateTime categories VisualStudio 自定义外部命令 lindexi 2018-08-10 19:16:53 +0800 2018- ...

  7. H3C IPv6邻居发现协议

  8. 微信里首次跳转会到首页问题(window.location失效)

    将window.location.href 换为location.href

  9. Linux下tomcat启动成功但是Windows打不开tomcat网址

    前提条件: 1.Linux和Windows都可以相互ping通. 2.Linux下tomcat可以启动,并且在Linux下可以访问8080 出现的问题: 当我在Windows下访问时,无法连接或者出现 ...

  10. 2019-9-20-SharpDx-的代替项目

    title author date CreateTime categories SharpDx 的代替项目 lindexi 2019-09-20 09:13:59 +0800 2019-09-20 0 ...