快速幂+枚举质因数+欧拉定理+lucas定理+CRT。

注意两点:

  1.if (n<m) C(n,m)=0.

2.这里0^0时应该return 0.

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define mod 999911659
#define mod2 999911658
#define maxn 40050
using namespace std;
long long g,n,p[]={,,,,},a[],inv1[maxn],inv2[maxn];
long long f_pow(long long x,long long y,long long mods)
{
x%=mods;
if ((!x) && (!y)) return ;
long long ans=,base=x;
while (y)
{
if (y&) ans=(ans*base)%mods;
base=(base*base)%mods;
y>>=;
}
return ans;
}
void get_table(long long x)
{
inv1[]=inv2[]=;
for (long long i=;i<=p[x]-;i++)
{
inv1[i]=inv1[i-]*i%p[x];
inv2[i]=f_pow(inv1[i],p[x]-,p[x]);
}
}
long long comb(long long n,long long m,long long type)
{
if (n<m) return ;
return inv1[n]*inv2[m]%p[type]*inv2[n-m]%p[type];
}
long long lucas(long long n,long long m,long long type)
{
if (!m) return ;long long ret=comb(n%p[type],m%p[type],type);
return comb(n%p[type],m%p[type],type)*lucas(n/p[type],m/p[type],type)%p[type];
}
long long combines()
{
long long ret=;
for (long long i=;i<=;i++)
ret=(ret+a[i]*(mod2/p[i])%mod2*f_pow(mod2/p[i],p[i]-,p[i])%mod2)%mod2;
return ret;
}
long long ask()
{
for (long long i=;i<=;i++)
{
get_table(i);long long top=(long long)(sqrt(n)+0.5);
for (long long j=;j<=top;j++)
{
if (!(n%j))
{
a[i]=(a[i]+lucas(n,j,i))%p[i];
if (j*j!=n) a[i]=(a[i]+lucas(n,n/j,i))%p[i];
}
}
}
return combines();
}
int main()
{
scanf("%lld%lld",&n,&g);
printf("%lld\n",f_pow(g,ask(),mod));
return ;
}

BZOJ 1951 古代猪文的更多相关文章

  1. BZOJ 1951SDOI2010 古代猪文

    真是到很强的数学题 先利用欧拉定理A^B %p=A^(B%φ(p)+φ(p) ) %p 然后利用卢卡斯定理求出在modφ(p)的几个约数下的解 再利用中国剩余定理合并 计算答案即可 By:大奕哥 #i ...

  2. 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 ...

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

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

  4. BZOJ 1951 【SDOI2010】 古代猪文

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

  5. 古代猪文 BZOJ 1951

    古代猪文 [问题描述] “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边 ...

  6. 1951: [Sdoi2010]古代猪文

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

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

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

  8. 【BZOJ1951】[SDOI2010]古代猪文

    [BZOJ1951][SDOI2010]古代猪文 题面 bzoj 洛谷 题解 题目实际上是要求 $ G^{\sum d|n\;C_n^d}\;mod \; 999911659 $ 而这个奇怪的模数实际 ...

  9. 【BZOJ1951】古代猪文(CRT,卢卡斯定理)

    [BZOJ1951]古代猪文(CRT,卢卡斯定理) 题面 BZOJ 洛谷 题解 要求什么很显然吧... \[Ans=G^{\sum_{k|N}{C_N^k}}\] 给定的模数是一个质数,要求解的东西相 ...

随机推荐

  1. [maven] settings 文件节点配置详解

    基本结构 <settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3. ...

  2. fatal error: openssl/sha.h: No such file or directory 解决方案

    出现这个或者fatal error: openssl/名单.h: No such file or directory.都是没有安装libssl-dev- libssl-dev包含libraries, ...

  3. OSVERSIONINFO

    OSVERSIONINFO结构 OSVERSIONINFO结构包含了操作系统的版本信息,包括操作系统的主版本号.副版本号.创建号.以及操作系统平台ID号和关于操作系统的其他描述信息.其定义为: typ ...

  4. nyoj------79拦截导弹

    拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到 ...

  5. think in java 读书笔记 2 —— 套接字

    目录 think in java 读书笔记 1 ——移位 think in java 读书笔记 2 —— 套接字 think in java 读书笔记 3 —— 数据报 概要 1. 套接字基本知识 2 ...

  6. SAP资产明细报表

    前两年别人写的,无自定义表字段...直接使用: *&---------------------------------------------------------------------* ...

  7. C语言知识整理(1):简介

    由于项目要求,需要学习iOS移动端开发.iOS开发的核心语言是Objective-C,Objective-C是在C语言的基础加了一层面向对象的语法.为了能够更好地掌握Objective-C,故先学习C ...

  8. BZOJ2721 [Violet 5]樱花

    先令n! = a: 1 / x + 1 / y = 1 / a  =>  x = y * a / (y - a) 再令 k = y - a: 于是x = a + a ^ 2 / k  => ...

  9. Storm(2) - Log Stream Processing

    Introduction This chapter will present an implementation recipe for an enterprise log storage and a ...

  10. Sql Server 主从数据库配置

    网站规模到了一定程度之后,该分的也分了,该优化的也做了优化,但是还是不能满足业务上对性能的要求:这时候我们可以考虑使用主从库.主从库是两台服务器上的两个数据库,主库以最快的速度做增删改操作+最新数据的 ...