CRT+LUCAS+费马小定理+拓展欧拉定理

幂指数太大了怎么办?欧拉定理,n太大了怎么办?上lucas,模数太大了怎么办?上crt。然后就好了,唯一注意的是要用拓展欧拉定理,n%phi(p)+phi(p)

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long ll;
const ll mod = 999911659ll, t[] = {, , , };
ll n, g;
ll a[], fac[][];
ll power(ll x, ll t, ll mod)
{
ll ret = 1ll;
for(; t; t >>= 1ll, x = x * x % mod) if(t & 1ll) ret = ret * x % mod;
return ret;
}
ll inv(ll x, ll p)
{
return power(x, p - , p);
}
ll C(ll n, ll m, int id)
{
if(n < m) return ;
ll ret = fac[id][n] % t[id] * inv(fac[id][m], t[id]) % t[id] * inv(fac[id][n - m], t[id]) % t[id];
// printf("C(%lld %lld) = %lld mod = %lld\n", n, m, ret, t[id]);
return ret;
}
ll lucas(ll n, ll m, int id)
{
if(n < m) return ;
if(n < t[id] && m < t[id]) return C(n, m, id);
return lucas(n % t[id], m % t[id], id) % t[id] * lucas(n / t[id], m / t[id], id) % t[id];
}
ll CRT()
{
ll M = mod - , ret = ;
for(int i = ; i < ; ++i) ret = (ret + a[i] * (M / t[i]) % M * inv(M / t[i], t[i]) % M) % M;
return ret % M;
}
int main()
{
scanf("%lld%lld", &n, &g);
for(int i = ; i < ; ++ i)
{
fac[i][] = 1ll;
for(int j = ; j <= t[i]; ++j) fac[i][j] = fac[i][j - ] * (ll)j % t[i];
for(ll j = 1ll; j * j <= n; ++j) if(n % j == )
{
ll mul = lucas(n, j, i);
// printf("C(%lld %lld) = %lld\n", n, j, mul);
a[i] = (a[i] + mul) % t[i];
if(j * j != n)
{
mul = lucas(n, n / j, i);
// printf("C(%lld %lld) = %lld\n", n, n / j, mul);
a[i] = (a[i] + mul) % t[i];
}
}
}
printf("%lld\n", power(g % mod, CRT() % (mod - ) + mod - , mod) % mod);
return ;
}

bzoj1951的更多相关文章

  1. 【bzoj1951】 Sdoi2010—古代猪文

    http://www.lydsy.com/JudgeOnline/problem.php?id=1951 (题目链接) 题意 废话一堆..求解: Solution 真的是数论经典题,什么都用上了. 因 ...

  2. BZOJ1951 [Sdoi2010]古代猪文 中国剩余定理 快速幂 数论

    原文链接http://www.cnblogs.com/zhouzhendong/p/8109156.html 题目传送门 - BZOJ1951 题意概括 求 GM mod 999911659 M=∑i ...

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

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

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

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

  5. 【BZOJ1951】[Sdoi2010]古代猪文 Lucas定理+CRT

    [BZOJ1951][Sdoi2010]古代猪文 Description 求$X=\sum\limits_{d|n}C_n^d$,$Ans=G^X (\mod 999911659)$. Input 有 ...

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

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

  7. 【题解】古代猪文 [SDOI2010] [BZOJ1951] [P2480]

    [题解]古代猪文 [SDOI2010] [BZOJ1951] [P2480] 在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心 ...

  8. BZOJ1951 古代猪文 【数论全家桶】

    BZOJ1951 古代猪文 题目链接: 题意: 计算\(g^{\sum_{k|n}(^n_k)}\%999911659\) \(n\le 10^9, g\le 10^9\) 题解: 首先,根据扩展欧拉 ...

  9. BZOJ1951[SDOI2010]古代猪文

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

  10. 数学的东西(BZOJ1951)

    #include <cstdio> #define LL long long LL finmo=; LL fac[][],inv[][]; LL tmp[],rev[]; LL n,g,x ...

随机推荐

  1. BZOJ1733: [Usaco2005 feb]Secret Milking Machine 神秘的挤奶机

    n<=200个点m<=40000条边无向图,求   t次走不经过同条边的路径从1到n的经过的边的最大值   的最小值. 最大值最小--二分,t次不重边路径--边权1的最大流. #inclu ...

  2. solr请求处理器列表

    List of Request Handlers Available The Javadocs contain a complete list of Request Handlers. Many of ...

  3. 寒武纪camp Day4

    补题进度:7/11 A(博弈论) 略 B 待填坑 C(贪心) 题意: 一个序列是good的当且仅当相邻两个数字不相同.给出一个长度为n的数列,每个数字是ai.定义一种操作就是把a中某个元素拿到首位去, ...

  4. Markdown中插入图片技巧收集

    在操作Markdown时图片应该是最头痛的一件事! 比如要发送一个md文件给对方,如果附带了图片时,那么就要一大堆文件包括图片发给对方等等,如果使用在线图片,那么这个服务器又是一大痛点,因为你不确定这 ...

  5. Centos 5.11 samba

    1.使用yum安装samba,添加samba user yum install samba samba-client samba-swatuseradd smbuser -m             ...

  6. Servlet的引入

    一.分析 此模式有问题: 1.jsp需要呼叫javabean StudentService stuService = new StudentServiceImpl(); List<Student ...

  7. 【内存数据库】OracleTimesten连接DSN创建用户

    ************************************************************************ ****原文:blog.csdn.net/clark_ ...

  8. 返回零长度的数组或者集合,而不是null

    <<Effective Java>> 第四十三条:返回零长度的数组或者集合,而不是null 假设一个方法的返回值类型是集合或者数组 .假设在方法内部须要返回的集合或者数组是零长 ...

  9. 用javascript写一个前端等待控件

    前端等待控件有啥新奇的?什么jquery啦,第三方控件啦,好多好多,信手拈来. 因为项目使用了bootstrap的原因,不想轻易使用第三方,怕不兼容.自己写一个. 技术点包括动态加载CSS,javas ...

  10. 2016/3/1 淘宝 腾讯 网易 css初始化代码 以及最基础的初始化

    淘宝官网(http://www.taobao.com/)样式初始化 body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, o ...