[BZOJ1965][Ahoi2005]SHUFFLE 洗牌(数学相关)
来源:互联网 发布:mac 命令行上传文件 编辑:程序博客网 时间:2024/05/30 19:33
题目描述
传送门
题解
每一次洗牌:
对于
对于
所以对于所有的
洗
那么洗
扩欧求逆元,并且用快速乘防止炸long long
代码
#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;#define LL long longLL n,m,l,ans;LL fast_mul(LL a,LL p){ LL ans=0LL; for (;p;p>>=1LL,a=(a+a)%(n+1)) if (p&1) ans=(ans+a)%(n+1); return ans;}LL fast_pow(LL a,LL p){ LL ans=1LL; for (;p;p>>=1LL,a=fast_mul(a,a)%(n+1)) if (p&1LL) ans=fast_mul(ans,a)%(n+1); return ans;}void exgcd(LL a,LL b,LL &x,LL &y){ if (!b) x=1LL,y=0LL; else exgcd(b,a%b,y,x),y-=a/b*x;}LL inv(LL a,LL b){ LL x=0LL,y=0LL; exgcd(a,b,x,y); x=(x%b+b)%b; if (!x) x+=b; return x;}int main(){ scanf("%lld%lld%lld",&n,&m,&l); ans=fast_mul(l%(n+1),inv(fast_pow(2LL,m),n+1))%(n+1); printf("%lld\n",ans);}
0 0
- [BZOJ1965][Ahoi2005]SHUFFLE 洗牌(数学相关)
- bzoj1965: [Ahoi2005]SHUFFLE 洗牌
- [BZOJ1965][Ahoi2005]SHUFFLE 洗牌
- BZOJ1965: [Ahoi2005]SHUFFLE 洗牌
- bzoj1965 [Ahoi2005]SHUFFLE 洗牌
- bzoj1965: [Ahoi2005]SHUFFLE 洗牌
- BZOJ1965 [Ahoi2005]SHUFFLE 洗牌
- 【bzoj1965】【Ahoi2005】【SHUFFLE 洗牌】【快速幂】
- [BZOJ1965][Ahoi2005]SHUFFLE 洗牌 数学公式+乘法逆元
- 【bzoj1965】【AHOI2005】洗牌
- 1965: [Ahoi2005]SHUFFLE 洗牌
- 1965: [Ahoi2005]SHUFFLE 洗牌
- bzoj 1965: [Ahoi2005]SHUFFLE 洗牌
- bzoj 1965: [Ahoi2005]SHUFFLE 洗牌 (快速幂)
- 【BZOJ】【P1965】【AHOI2005】【SHUFFLE 洗牌】【题解】【数论】
- BZOJ 1965 AHOI2005 SHUFFLE 洗牌 数论
- 【逆元】【bzoj 1965】: [Ahoi2005]SHUFFLE 洗牌
- [BZOJ]1965: [Ahoi2005]SHUFFLE 洗牌 扩展欧几里得
- Latex中文简历制作
- 应对表扩展的一列
- android设置字体颜色的三种方法
- 在 library 中使用 ButterKnife
- 解决Android7.0系统 调用系统相机、系统播放器播放视频、切图兼容问题,报异常android.os.FileUriExposedException
- [BZOJ1965][Ahoi2005]SHUFFLE 洗牌(数学相关)
- Android studio打jar包
- 添加div弹框 + 遮罩
- Android ScrollView撑不满屏幕的解决方案
- Struts2(三) 数据在框架中的数据流转问题
- 自定义view 三角形路径绘制
- (OS 10048)通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 : AH00072: make_sock: could not bind to address 0.0.0.0:X
- oracle authid current_user详解
- NHibernate 查询视图数据与数据库数据不一致