一句话题意:G 的 sigma d|n  C(n d) 次幂  mod 999911659

(我好辣鸡呀还是不会mathjax)

分析:

1.利用欧拉定理简化模运算 ,将上方幂设为x,则x=原式mod 999911658.

2.发现幂的前半部分太大无法直接算,又因为999911658 可分解为 2 3 4679 35617 四个质数

3.利用中国剩余定理可分别计算 x=a1(mod m1=2) ...最后利用它统计出x

4.快速幂将答案计算

#include<bits/stdc++.h>
#define int long long
#define rep(i,x,y) for(register int i=x;i<=y;i++)
#define dec(i,x,y) for(register int i=x;i>=y;i--)
using namespace std; const int mod=; int n,g,m[]={,,,,},a[];
int fac[][]; inline int qpow(int a,int n,int p){
int s=;while(n){if(n&) s=s*a%p;a=a*a%p;n>>=;}return s;} inline void init(){
fac[][]=fac[][]=fac[][]=fac[][]=;
rep(i,,)rep(j,,)
fac[i][j]=fac[i-][j]*i%m[j];} inline int C(int a,int b,int c){
if(a<b) return ;
return fac[a][c]*qpow(fac[b][c],m[c]-,m[c])%m[c]*qpow(fac[a-b][c],m[c]-,m[c])%m[c]; } inline int Lucas(int a,int b,int c){
if(!b) return ;
return C(a%m[c],b%m[c],c)*Lucas(a/m[c],b/m[c],c)%m[c];} inline void work(int i){
rep(j,,) a[j]=(a[j]+Lucas(n,i,j))%m[j];} inline int CRT(){ int x=,M=mod-;
rep(i,,){ int Mi=M/m[i];
x=(x+a[i]*Mi*qpow(Mi,m[i]-,m[i])%M)%M;}return x;} #undef int
int main(){
#define int long long
scanf("%lld%lld",&n,&g); init();
if(g%mod==) {printf("");return ;} rep(i,,sqrt(n))
if(n%i==){ work(i);
if(i*i!=n) work(n/i);} printf("%lld\n",qpow(g,CRT(),mod));return ;
}

luogu 2480 古代猪文 数论合集(CRT+Lucas+qpow+逆元)的更多相关文章

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

  2. 【bzoj1951】: [Sdoi2010]古代猪文 数论-中国剩余定理-Lucas定理

    [bzoj1951]: [Sdoi2010]古代猪文 因为999911659是个素数 欧拉定理得 然后指数上中国剩余定理 然后分别lucas定理就好了 注意G==P的时候的特判 /* http://w ...

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

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

  4. [bzoj1951] [Sdoi2010]古代猪文 费马小定理+Lucas定理+CRT

    Description "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久 ...

  5. bzoj1951 [Sdoi2010]古代猪文 ——数论综合

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1951 题意就是要求 G^( ∑(k|n) C(n,k) ) % p,用费马小定理处理指数,卢 ...

  6. BZOJ.1951.[SDOI2010]古代猪文(费马小定理 Lucas CRT)

    题目链接 \(Description\) 给定N,G,求\[G^{\sum_{k|N}C_n^k}\mod\ 999911659\] \(Solution\) 由费马小定理,可以先对次数化简,即求\( ...

  7. 【bzoj1951】[Sdoi2010]古代猪文 费马小定理+Lucas定理+中国剩余定理

    题目描述 求  $g^{\sum\limits_{k|n}C_{n}^{\frac nk}}\mod 999911659$ 输入 有且仅有一行:两个数N.G,用一个空格分开. 输出 有且仅有一行:一个 ...

  8. luogu_2480: 古代猪文

    洛谷:2480古代猪文 题意描述: 给定两个整数\(N,G\),求$G^{\sum_{k|n}C_n^k} mod 999911659 $. 数据范围: \(1\leq N\leq 10^9,1\le ...

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

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

随机推荐

  1. tyvj/joyoi 2018 小猫爬山

    2018,这个题号吼哇! 搜索第一题,巨水. WA了一次,因为忘了还原... #include <cstdio> ; int n, W, ans, weigh[N], cost[N]; i ...

  2. 跟着underscore学防抖

    前言 在前端开发中会遇到一些频繁的事件触发,比如: window 的 resize.scroll mousedown.mousemove keyup.keydown -- 为此,我们举个示例代码来了解 ...

  3. vue2.0项目实战(5)vuex快速入门

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue 的官方调试工具  ...

  4. [bzoj1717][Milk Patterns 产奶的模式]

    题目链接 思路 先求出后缀数组,并且求出LCP.二分一下长度len.check的时候就是看有没有连续的k个后缀的LCP大于len.也就是判断是不是有连续的k-1个height大于len. 代码 #in ...

  5. Django反正解析路由

    首先要了解为什么要定义反响解析 因为随着功能的增加会出先非常多的视图和对应的路由,有可能项目的一些需要一些模板需要重写路由,或之前配置的正则表达式不够准确,于是就要修改正则表达式,但是路由或正则表达式 ...

  6. Django(十一)请求生命周期之CBV与FBV

    https://www.cnblogs.com/yuanchenqi/articles/8715364.html FBV FBV(function base views) 就是在视图里使用函数处理请求 ...

  7. Sublime Text3—软件安装、package control插件管理

    一.简介 市面上的编辑器纷繁复杂各有优点,好用的编辑器能让你工作事半功倍,先简单介绍下本文主角Sublime Text编辑器,下面简称Sublime. 1.可用于 Windows.Mac OS X 和 ...

  8. 在spring中如何生成一个bean (一个对象,比如jedis的连接池对象)【我】

    在spring中,要想生成一个单例对象(比如jedis的连接池对象) 方法1: 在 spring中用 bean 标签生成(反正就是让spring生成并管理单例的对象) 方法2: 把要生成的单例对象类, ...

  9. java 分隔函数split("",-1)的用途

    转: java 分隔函数split("",-1)的用途 2017年12月14日 11:37:58 jaryle 阅读数:8517   1.如果字符串最后一位有值,则没有区别, 2. ...

  10. TODO 动态执行appium代码,便于修改和调试

    https://testerhome.com/topics/9040 还没尝试过. 不过不是很懂怎么实现的,java不是编译后再运行的语言吗?怎么一边编译一边运行呢???