洛谷P2480 古代猪文
这道题把我坑了好久......
原因竟是CRT忘了取正数!
题意:求
指数太大了,首先用欧拉定理取模。
由于模数是质数所以不用加上phi(p)
然后发现phi(p)过大,不能lucas,但是它是个square free,可以分解质因数然后lucas然后CRT。
然后就没有然后了......模板套来套去......
注意CRT的结果可能是负数,要取正。
#include <cstdio>
#include <algorithm>
#define say(a) printf(#a); printf(" = %lld \n", a) typedef long long LL;
const int N = ;
const LL MO = ;
const LL prime[] = {, , , }; int T;
LL n, G;
LL nn[][N], inv[][N], invn[][N], aa[]; inline LL qpow(LL a, LL b, LL c) {
LL ans = ;
while(b) {
if(b & ) {
ans = ans * a % c;
}
a = a * a % c;
b = b >> ;
}
return ans;
}
LL C(int a, int b) {
return nn[T][a] * invn[T][b] % prime[T] * invn[T][a - b] % prime[T];
}
LL lucas(int a, int b) {
if(!b) {
return ;
}
return C(a % prime[T], b % prime[T]) * lucas(a / prime[T], b / prime[T]) % prime[T];
}
LL exgcd(LL a, LL b, LL &x, LL &y) {
if(!b) {
x = ;
y = ;
return a;
}
LL g = exgcd(b, a % b, x, y);
std::swap(x, y);
y -= (a / b) * x;
return g;
} inline void prework(int h) {
inv[h][] = ;
LL p = prime[h];
for(int i = ; i < p; i++) {
inv[h][i] = (p - p / i) * inv[h][p % i] % p;
}
nn[h][] = ;
invn[h][] = ;
for(int i = ; i < p; i++) {
nn[h][i] = nn[h][i - ] * i % p;
invn[h][i] = invn[h][i - ] * inv[h][i] % p;
}
return;
} inline LL CRT() { LL M = MO - , ans = , b, t;
for(int i = ; i < ; i++) {
LL m = M / prime[i];
exgcd(m, prime[i], t, b);
t = (t % M + M) % M;
ans += aa[i] * m % M * t % M;
ans %= M;
} return ans;
} int main() { scanf("%lld%lld", &n, &G);
if(G == MO) {
printf("");
return ;
}
for(int i = ; i < ; i++) {
prework(i);
} for(T = ; T < ; T++) {
for(int i = ; i * i <= n; i++) {
if(n % i) {
continue;
}
aa[T] += lucas(n, i);
aa[T] %= prime[T];
if(i * i < n) {
aa[T] += lucas(n, n / i);
aa[T] %= prime[T];
}
}
//printf("aa[%d] = %lld \n", T, aa[T]);
} LL ans = CRT();
//printf("ans = %lld \n", ans); ans = qpow(G, ans, MO);
printf("%lld\n", ans);
return ;
}
AC代码
洛谷P2480 古代猪文的更多相关文章
- 洛谷 [P2480] 古代猪文
卢卡斯定理 注意特判底数和模数相等的情况 http://www.cnblogs.com/poorpool/p/8532809.html #include <iostream> #inclu ...
- 洛谷 P2480 [SDOI2010]古代猪文 解题报告
P2480 [SDOI2010]古代猪文 题目背景 "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" ...
- 洛咕 P2480 [SDOI2010]古代猪文
洛咕 P2480 [SDOI2010]古代猪文 题目是要求\(G^{\sum_{d|n}C^d_n}\). 用费马小定理\(G^{\sum_{d|n}C^d_n\text{mod 999911658} ...
- 【题解】古代猪文 [SDOI2010] [BZOJ1951] [P2480]
[题解]古代猪文 [SDOI2010] [BZOJ1951] [P2480] 在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心 ...
- 【题解】P2480 [SDOI2010]古代猪文 - 卢卡斯定理 - 中国剩余定理
P2480 [SDOI2010]古代猪文 声明:本博客所有题解都参照了网络资料或其他博客,仅为博主想加深理解而写,如有疑问欢迎与博主讨论✧。٩(ˊᗜˋ)و✧*。 题目描述 猪王国的文明源远流长,博大精 ...
- P2480 [SDOI2010]古代猪文
P2480 [SDOI2010]古代猪文 比较综合的一题 前置:Lucas 定理,crt 求的是: \[g^x\bmod 999911659,\text{其中}x=\sum_{d\mid n}\tbi ...
- 【BZOJ1951】[SDOI2010]古代猪文
[BZOJ1951][SDOI2010]古代猪文 题面 bzoj 洛谷 题解 题目实际上是要求 $ G^{\sum d|n\;C_n^d}\;mod \; 999911659 $ 而这个奇怪的模数实际 ...
- 【BZOJ1951】古代猪文(CRT,卢卡斯定理)
[BZOJ1951]古代猪文(CRT,卢卡斯定理) 题面 BZOJ 洛谷 题解 要求什么很显然吧... \[Ans=G^{\sum_{k|N}{C_N^k}}\] 给定的模数是一个质数,要求解的东西相 ...
- luogu_2480: 古代猪文
洛谷:2480古代猪文 题意描述: 给定两个整数\(N,G\),求$G^{\sum_{k|n}C_n^k} mod 999911659 $. 数据范围: \(1\leq N\leq 10^9,1\le ...
随机推荐
- 20155233 《网络对抗》 Exp5 MSF基础应用
主动攻击:ms08_067漏洞攻击 启用msf终端msfconsole然后使用search命令搜索该漏洞对应的模块:search ms08_067 选择输入use exploit/windows/sm ...
- NetWork——描述一次完整的网络请求过程
台根DNS,根DNS服务器收到请求后会返回负责这个域名(.net)的服务器的一个IP,本地DNS服务器使用该IP信息联系负责.net域的这台服务器.这台负责.net域的服务器收到请求后,如果自己无法解 ...
- 【php增删改查实例】 第二节 - MYSQL环境配置
安装好xampp后,会自带一个mysql,也就是说,正常情况下,你直接这样: 就可以启动mysql了. 如果你了,下面的步骤就别看了哈. if( 启动成功 ){ return; } 如果你的电脑上已经 ...
- 7、Docker监控方案(cAdvisor+InfluxDB+Grafana)
一.组件介绍 我们采用现在比较流行的cAdvisor+InfluxDB+Grafana组合进行Docker监控. 1.cAdvisor(数据采集) 开源软件cAdvisor(Container Adv ...
- .NET Core 开发之旅 (1. .NET Core R2安装教程及Hello示例)
前言 前几天.NET Core发布了.NET Core 1.0.1 R2 预览版,之前想着有时间尝试下.NET Core.由于各种原因,就没有初试.刚好,前几天看到.NET Core发布新版本了,决定 ...
- Azure 基础:自定义 Table storage 查询条件
本文是在 <Azure 基础:Table storage> 一文的基础上介绍如何自定义 Azure Table storage 的查询过滤条件.如果您还不太清楚 Azure Table s ...
- (功能篇)回顾Bug管理系统Mantis优化改造经历
共分为两篇,功能篇和技术篇. 时间大约是2016年冬天. 考虑搭一个用于Bug管理和追踪的系统. 综合比较下,选择了小巧的开源工具,Mantis. 在源码基础上,做代码修改,完成了定制版的优化改造. ...
- FUNMVP:5G技术对块链信任体系建设的影响
01 区块链现阶段应用在于概念证明 12月10日,工信部向三大运营商正式发放了5G系统实验频率运用允许,这让区块链从业者开端思索5G技术与区块链分别的可能性.在互联网的基础上依据区块链的特性完成价值的 ...
- Notes of Daily Scrum Meeting(12.5)
最近各种大作业催的比较紧,而且也因为Beta阶段刚刚开始,大家的进展很缓慢,周四因为课业的原因大部分队员 没有做我们的项目,所以就在今天一起总结,我们的问题反馈给学姐之后,学姐也还在看,目前还没有回复 ...
- 20135202闫佳歆--week6 课本第三章学习笔记
第三章 进程管理 一.进程 1.进程 进程就是处于执行期的程序. 进程就是正在执行的程序代码的实时结果. 进程是处于执行期的程序以及相关的资源的总称. 进程包括代码段和其他资源. 2.线程 执行线程, ...