AcWing 213. 古代猪文 数学知识
题目描述:
给定整数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. 古代猪文 数学知识的更多相关文章
- bzoj 1951 [Sdoi2010]古代猪文 ——数学综合
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1951 数学综合题. 费马小定理得指数可以%999911658,又发现这个数可以质因数分解.所 ...
- [SDOI2010]古代猪文 (欧拉,卢卡斯,中国剩余)
[SDOI2010]古代猪文 \(solution:\) 这道题感觉综合性极强,用到了许多数论中的知识: 质因子,约数,组合数 欧拉定理 卢卡斯定理 中国剩余定理 首先我们读题,发现题目需要我们枚举k ...
- BZOJ-1951 古代猪文 (组合数取模Lucas+中国剩余定理+拓展欧几里得+快速幂)
数论神题了吧算是 1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1573 Solved: 650 [Submit ...
- 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 ...
- 1951: [Sdoi2010]古代猪文
1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 2171 Solved: 904[Submit][Status] ...
- BZOJ 1951: [Sdoi2010]古代猪文 [Lucas定理 中国剩余定理]
1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 2194 Solved: 919[Submit][Status] ...
- 古代猪文:数论大集合:欧拉定理,exgcd,china,逆元,Lucas定理应用
/* 古代猪文:Lucas定理+中国剩余定理 999911658=2*3*4679*35617 Lucas定理:(m,n)=(sp,tp)(r,q) %p 中国剩余定理:x=sum{si*Mi*ti} ...
- 洛咕 P2480 [SDOI2010]古代猪文
洛咕 P2480 [SDOI2010]古代猪文 题目是要求\(G^{\sum_{d|n}C^d_n}\). 用费马小定理\(G^{\sum_{d|n}C^d_n\text{mod 999911658} ...
- BZOJ 1951 【SDOI2010】 古代猪文
题目链接:古代猪文 好久没写博客了,这次就先写一篇吧…… 题面好鬼……概括起来就是:给出\(N,G(\leqslant 10^9)\),求:\[G^{\sum_{d|n}\binom{n}{d}} \ ...
随机推荐
- input标签前台实现文件上传
值得注意的是:当一个表单里面包含这个上传元素的时候,表单的enctype必须指定为multipart/form-data,method必须指定为post,浏览器才会认识并正确执行.但是还有一点,浏览器 ...
- H3C 总线型以太网拓扑扩展
- laravel中将session由文件保存改为数据库保存
1.laravel中默认是使用文件保存session的,保存在/storage/framework/sessions下 2.修改配置文件 config/session.php中 'driver' =& ...
- Python--day38--多进程的方法属性总结
多进程的方法属性:
- C# 从零开始写 SharpDx 应用 绘制基础图形
本文告诉大家通过 SharpDx 画出简单的 2D 界面 本文属于 SharpDx 系列 博客,建议从头开始读 本文分为两步,第一步是初始化,第二步才是画界面 初始化 先创建 RenderForm 用 ...
- H3C查看历史命令--用户以上
[H3Cwang]display history-command sys sysname H3C sysname H3Cwang display history-command q ...
- 圆角效果 border-radius——阴影 box-shadow——为边框应用图片 border-image
1.圆角效果 border-radius border-radius: 5px 4px 3px 2px; /* 四个半径值分别是左上角.右上角.右下角和左下角,顺时针 */ 不要以为border-ra ...
- 解决应用服务器变为集群后的Session问题
2.2.4.2 解决应用服务器变为集群后的Session问题 先来看一下什么是Session. 用户使用网站的服务,基本上需要浏览器与Web 服务器的多次交互.HTTP 协议本身是无状态的,需要基于H ...
- Online Classification
Another challenging trend in Internet evolution is the tremendous growth of the infrastructure in ev ...
- wpf遮罩~~~(搬运过来的)
方便自己以后用,原文:https://blog.csdn.net/lwwl12/article/details/78472235 直接上代码 public partial class BaseWind ...