您的位置:首页 > 其它

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));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: