Codeforces_359C_Prime Number
2013-11-03 17:27
363 查看
题型:数论
题意:
先有n个数a1, a2, ..., an和一个质数x,代进式子
得到
,
t=xa1 + a2 + ... + an
求出s和t的GCD。
分析:
先粘一个tiankonguse的分析。
奇葩的数论题,主要要找出因子的结构,然后找出gcd应该是x的几次方。
代码:
题意:
先有n个数a1, a2, ..., an和一个质数x,代进式子
得到
,
t=xa1 + a2 + ... + an
求出s和t的GCD。
分析:
先粘一个tiankonguse的分析。
奇葩的数论题,主要要找出因子的结构,然后找出gcd应该是x的几次方。
代码:
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #define MOD 1000000007LL #define ll __int64 using namespace std; ll a[123456],n,x,sum; ll mult_mod(ll a,ll b,ll c) { a%=c; b%=c; ll ret=0; while(b) { if(b&1) { ret+=a; ret%=c; } a<<=1; if(a>=c) a%=c; b>>=1; } return ret; } //¼ÆËã x^n %c ll pow_mod(ll x,ll n,ll mod) { if(n==1) return x%mod; x%=mod; ll tmp=x; ll ret=1; if (n == 0) return ret; while(n) { if(n&1) ret=mult_mod(ret,tmp,mod); tmp=mult_mod(tmp,tmp,mod); n>>=1; } return ret; } bool cmp(ll a,ll b) { return a>b; } int main() { while(~scanf("%I64d%I64d",&n,&x)) { sum=0; for(int i=0; i<n; i++) { scanf("%I64d",&a[i]); sum+=a[i]; } for(int i=0; i<n; i++) { a[i]=sum-a[i]; } sort(a,a+n,cmp); ll top=n-1; while(1) { ll v=a[top]; ll cnt=0; while(top>=0 && v==a[top]) { top--; cnt++; } if(cnt%x) { v = sum<v ? sum : v; printf("%I64d\n",pow_mod(x,v,MOD)); break; } cnt/=x; for(int i=0; i<cnt; i++) { top++; a[top]=v+1; } } } return 0; } /* 2 2 2 2 3 3 1 2 3 2 2 29 29 4 5 0 0 0 0 26 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 */
相关文章推荐
- CodeForces - 359C Prime Number(数论)
- CodeForces 359C Prime Number 数学+快速幂
- CodeForces - 359C Prime Number(数论)
- Codeforces 359C Prime Number (数学+快速幂)
- CodeForces - 359C Prime Number(数论)
- CodeForces - 359C Prime Number(数论)
- CodeForces - 359C Prime Number(数论)
- CodeForces - 359C Prime Number(数论)
- Prime Number(CodeForces - 359C )
- CodeForces - 359C Prime Number(数论)
- CodeForces - 359C~Prime Number(思路)
- CodeForces - 359C Prime Number(数论)
- CodeForces - 359C Prime Number(数论)
- CodeForces - 359C Prime Number(数论)
- CodeForces - 359C Prime Number(数论)
- CodeForces - 359C Prime Number(数论)
- CodeForces - 359C Prime Number(数论)
- CodeForces - 359C Prime Number(数论)
- CodeForces - 359C Prime Number(数论)
- cf 359c Prime Number