摘要:有n个犯人,被关在n个不同的房间,有m种宗教,如果,相邻房间的犯人信仰相同,则判定为越狱。那么我们可以用组合数学来计算这个数据,用方案的总数,减去不可能的情况,就是答案。
方案的总数:m^n ,在每个房间,每个宗教的可能有m种,有n个房间所以 m^n
不可能的情况: m * (m-1 ) ^(n-1) ,我们要达成不可能的情况,必须要选中一种宗教m[ i ] ,而其他的房间宗教与被选中的宗教不同, ,这样才可能发生越狱的情况,所以,我们假设某个房间有m种选择,其他的房间为 (m-1)^(n-1) 剩余宗教数 ^ 剩余房间数。
答案: 方案的总数 – 不可能的方案 = 可能越狱的方案
由于方案最终的数量可能过于庞大,因此,在这个计算的过程中用到快速幂的技巧来实现。
ll pow( ll x, ll y)
{
ll ans=1 ,a=x;
while(y)
{
if(y&1) ans*=a, ans%=p;
a*=a ,a%=p;
y>>=1;
}
return ans;
}
1 #include<iostream> 2 using namespace std; 3 typedef long long ll; 4 const int p=100003; 5 ll pow(ll x, l宁波诺丁汉大学l y) 6 { 7 ll a=x,ans=1; 8 while(y) 9 {10 if(y&1)ans*=a新闻写作,ans%=p;11 a*=a,a%=p;12 y>环境描写的作用答题格式;>=1;13 }14 ret读书的英文urn ans;15 }16 int main()17 {18 ll n,m;19 while(cin>>m>>n)20 {21 m%=p;22 ll ans=pow(m,n);23 ans-=pow(m-1,n-1)*m;24 a同安影视城好玩吗ns = ((ans%p)+p)%p;25 cout<<ans<<endl;26 }27 return 0;28 }
本文发布于:2023-04-07 12:36:55,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/f0e78e55bef91dd225fb5215f51eb4b9.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:BZOJ1008.doc
本文 PDF 下载地址:BZOJ1008.pdf
留言与评论(共有 0 条评论) |