bzoj 1951
这道题告诉了我们一个很重要的道理:看到题,先想明白再动手!
题意:求对999911659取模的值
首先,由于n的数据范围不是很大(至少不是很大),所以可以O()枚举所有约数分别求组合数
但是有个问题:根据费马小定理,
所以组合数应当对p-1取模!
可是p-1并不是一个质数啊
所以我们要将p-1质因子分解,发现可以分解成四个质数之积,那么我们用四次卢卡斯定理分别计算出四个结果再用中国剩余定理合并即可。
但我真正想说的是,如果做过礼物的话,很容易误以为这题要用拓展卢卡斯定理,然后写到死...
所以千万不要像我一样...
#include <cstdio>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <queue>
#include <stack>
#define mode 999911659
#define mo 999911658
#define ll long long
using namespace std;
ll inv[][];
ll mul[][];
ll mod[]={,,,,};
ll a[];
ll n,g;
ll pow_mul(ll x,ll y)
{
ll ans=;
while(y)
{
if(y%)
{
ans*=x;
ans%=mode;
}
x*=x;
x%=mode;
y/=;
}
return ans;
}
void init()
{
for(int i=;i<=;i++)
{
inv[][i]=inv[][i]=mul[][i]=mul[][i]=;
for(int j=;j<mod[i];j++)
{
inv[j][i]=(mod[i]-mod[i]/j)*inv[mod[i]%j][i]%mod[i];
}
for(int j=;j<mod[i];j++)
{
inv[j][i]=inv[j-][i]*inv[j][i]%mod[i];
mul[j][i]=mul[j-][i]*j%mod[i];
}
}
}
ll C(ll x,ll y,ll num)
{
if(x<y)
{
return ;
}else if(x==y)
{
return ;
}else if(x<mod[num])
{
return mul[x][num]*inv[y][num]%mod[num]*inv[x-y][num]%mod[num];
}else
{
return C(x/mod[num],y/mod[num],num)*C(x%mod[num],y%mod[num],num)%mod[num];
}
}
void ex_gcd(ll a,ll b,ll &x,ll &y)
{
if(b==)
{
x=;
y=;
return;
}
ex_gcd(b,a%b,x,y);
ll t=x;
x=y;
y=t-(a/b)*x;
}
ll china()
{
ll M=mo;
ll ans=;
for(int i=;i<=;i++)
{
ll M0=M/mod[i];
ll x,y;
ex_gcd(M0,mod[i],x,y);
x=(x%mod[i]+mod[i])%mod[i];
ans+=x*M0%mo*a[i]%mo;
}
return ans;
}
ll solve(ll x,ll y)
{
for(int i=;i<=;i++)
{
a[i]=C(x,y,i);
}
return china();
}
int main()
{
scanf("%lld%lld",&n,&g);
init();
ll s=;
for(int i=;i*i<=n;i++)
{
if(n%i==)
{
s+=solve(n,i);
s%=mo;
if(n/i!=i)
{
s+=solve(n,n/i);
}
} }
printf("%lld\n",pow_mul(g,s));
return ;
}
bzoj 1951的更多相关文章
- bzoj 1951 [Sdoi2010]古代猪文(数论知识)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1951 [思路] 一道优(e)秀(xin)的数论题. 首先我们要求的是(G^sigma{ ...
- 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 ...
- BZOJ 1951: [Sdoi2010]古代猪文 [Lucas定理 中国剩余定理]
1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 2194 Solved: 919[Submit][Status] ...
- bzoj 1951 [Sdoi2010]古代猪文 ——数学综合
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1951 数学综合题. 费马小定理得指数可以%999911658,又发现这个数可以质因数分解.所 ...
- bzoj 1951: [Sdoi2010]古代猪文
#include<cstdio> #include<iostream> #include<cstring> #include<cmath> #defin ...
- BZOJ 1951 古代猪文
快速幂+枚举质因数+欧拉定理+lucas定理+CRT. 注意两点: 1.if (n<m) C(n,m)=0. 2.这里0^0时应该return 0. #include<iostream&g ...
- 【BZOJ 1951】 [Sdoi2010]古代猪文
Description “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边 ...
- 【数学/扩展欧几里得/Lucas定理】BZOJ 1951 :[Sdoi 2010]古代猪文
Description “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边 ...
- BZOJ.1951.[SDOI2010]古代猪文(费马小定理 Lucas CRT)
题目链接 \(Description\) 给定N,G,求\[G^{\sum_{k|N}C_n^k}\mod\ 999911659\] \(Solution\) 由费马小定理,可以先对次数化简,即求\( ...
随机推荐
- 资源中心的ES 服务的COM.IFLYTEK.ERSP.API.RESOURCEAPI 接口注册ZOOKEEPER失败,解决记录
No provider available for the service com.iflytek.ersp.api.ResourceApi from the url zookeeper://zook ...
- Simple scatter method in 2d picture(Qt)
Result: grayMap: MathTools: // // Created by Administrator on 2017/8/17. // #ifndef QTSCATTER_MATHTO ...
- HAProxy详解(一):HAProxy介绍【转】
一.高性能负载均衡软件HAProxy介绍: 随着互联网业务的迅猛发展,大型电商平台和门户网站对系统的可用性和可靠性要求越来越高,高可用集群.负载均衡集群成为一种热门的系统架构解决方案.在众多的负载均衡 ...
- python异步编程模块asyncio学习(二)
尽管asyncio应用通常作为单线程运行,不过仍被构建为并发应用.由于I/O以及其他外部事件的延迟和中断,每个协程或任务可能按一种不可预知的顺序执行.为了支持安全的并发执行,asyncio包含了thr ...
- aiojobs
import asyncio import aiojobs async def coro(timeout): print(timeout) await asyncio.sleep(timeout) p ...
- MFC不可不会
这些可能会很抽象,你既然学MFC,给你几个不可少的技术点 1.Dynamic Creation2.Runtime Type Imformation3.Persistence4.Message Mapp ...
- 在 mingw32 上编译 libvpx 1.7.0 时的注意事项
in the vp8/common/theading.h Just need to add 1 line:#include <sys/types.h>before the last occ ...
- RF运行脚本报错:WebDriverException: Message: unknown error: call function result missing
原因:浏览器驱动与浏览器版本不对应
- GIT入门文档
集中式(SVN): 集中式版本控制系统,版本库是集中存放在中央服务器的,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器. 集中式版本控制系 ...
- [转载]RabbitMQ消息可靠性分析
有很多人问过我这么一类问题:RabbitMQ如何确保消息可靠?很多时候,笔者的回答都是:说来话长的事情何来长话短说.的确,要确保消息可靠不只是单单几句就能够叙述明白的,包括Kafka也是如此.可靠并不 ...