bzoj1965 [AHOI2005]洗牌 结论
2017-12-28 19:25
295 查看
这种循环操作的题首先想到有向图模型,然后发现有循环节,然后发现偶数个是/2,奇数个是+一列循环的数
然后每个数正好出现一次,想到快速幂,然后就找到模数了(打表找规律)
数据比较水,还以为要写高精
码:
#include<iostream>
#include<cstdio>
using namespace std;
#define ll long long
ll n,m,k;
ll ksm(ll a,ll b,ll p)
{
ll ans=1;
while(b)
{
if(b&1)ans=ans*a%p;
b/=2;
a=a*a%p;
}
return ans;
}
int main()
{
scanf("%lld%lld%lld",&n,&m,&k);
printf("%lld",k*ksm(n/2+1,m,n+1)%(n+1));
}
然后每个数正好出现一次,想到快速幂,然后就找到模数了(打表找规律)
数据比较水,还以为要写高精
码:
#include<iostream>
#include<cstdio>
using namespace std;
#define ll long long
ll n,m,k;
ll ksm(ll a,ll b,ll p)
{
ll ans=1;
while(b)
{
if(b&1)ans=ans*a%p;
b/=2;
a=a*a%p;
}
return ans;
}
int main()
{
scanf("%lld%lld%lld",&n,&m,&k);
printf("%lld",k*ksm(n/2+1,m,n+1)%(n+1));
}
相关文章推荐
- bzoj1965 [Ahoi2005]SHUFFLE 洗牌
- bzoj 1965: [Ahoi2005]SHUFFLE 洗牌 (快速幂)
- BZOJ1965 [Ahoi2005]SHUFFLE 洗牌
- [BZOJ1965][Ahoi2005]SHUFFLE 洗牌(数学相关)
- BZOJ 1965 AHOI2005 SHUFFLE 洗牌 数论
- 【逆元】【bzoj 1965】: [Ahoi2005]SHUFFLE 洗牌
- BZOJ1965 [Ahoi2005]SHUFFLE 洗牌
- 【bzoj1965】[Ahoi2005]SHUFFLE 洗牌
- [BZOJ1965][Ahoi2005]SHUFFLE 洗牌
- bzoj1965: [Ahoi2005]SHUFFLE 洗牌
- BZOJ 1965: [Ahoi2005]SHUFFLE 洗牌( 数论 )
- BZOJ 1965: [Ahoi2005]SHUFFLE 洗牌 快速幂 快速乘
- BZOJ1965: [Ahoi2005]SHUFFLE 洗牌
- BZOJ1965: [Ahoi2005]SHUFFLE 洗牌
- bzoj1965 [Ahoi2005]洗牌
- bzoj 1965: [Ahoi2005]SHUFFLE 洗牌
- 【bzoj1965】 [Ahoi2005]SHUFFLE 洗牌 欧拉定理
- [BZOJ]1965: [Ahoi2005]SHUFFLE 洗牌 扩展欧几里得
- bzoj 1965: [Ahoi2005]SHUFFLE 洗牌
- bzoj1965 [Ahoi2005]SHUFFLE 洗牌