牛客练习赛82 B.Mocha 的序列(小思维,同余)
Posted issue是fw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客练习赛82 B.Mocha 的序列(小思维,同余)相关的知识,希望对你有一定的参考价值。
题意
对于每次询问 3 3 3,需要回答 ∏ i = l r a i % ( r − l + 1 ) ! \\prod\\limits_{i=l}^ra_i\\%(r-l+1)! i=l∏rai%(r−l+1)!
因为初始 a i = i a_i=i ai=i
其中 ∏ i = l r a i \\prod\\limits_{i=l}^ra_i i=l∏rai是连续的一段 a i a_i ai,区间长度为 r − l + 1 r-l+1 r−l+1
而注意到 ( r − l + 1 ) ! = 1 ∗ 2 ∗ 3... ∗ ( r − l + 1 ) (r-l+1)!=1*2*3...*(r-l+1) (r−l+1)!=1∗2∗3...∗(r−l+1)
观察到初始时 ∏ i = l r a i = l ∗ ( l + 1 ) ∗ ( l + 2 ) . . ∗ r \\prod\\limits_{i=l}^ra_i=l*(l+1)*(l+2)..*r i=l∏rai=l∗(l+1)∗(l+2)..∗r
显然 [ l , r ] [l,r] [l,r]中每个数模 r − l + 1 r-l+1 r−l+1互不同余,且一定有一个模 r − l + 1 r-l+1 r−l+1为零
扩展一下,对于 i ∈ [ 1 , r − l + 1 ] i\\in[1,r-l+1] i∈[1,r−l+1]每个数,在 [ l , r ] [l,r] [l,r]中至少能找到一个数 x x x使得 i i i是 x x x的因子
那么显然 ∏ i = l r a i \\prod\\limits_{i=l}^ra_i i=l∏rai有因子 ( r − l + 1 ) ! (r-l+1)! (r−l+1)!
所以不管序列怎么乘,怎么平方,答案都是 0 0 0
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6+10;
int n,m;
int main()
{
cin >> n >> m;
for(int i=1;i<=m;i++)
{
int type,l,r,k; cin >> type >> l >> r;
if( type==3 )
cout << 0 << endl;
}
}
以上是关于牛客练习赛82 B.Mocha 的序列(小思维,同余)的主要内容,如果未能解决你的问题,请参考以下文章