求调
查看原帖
求调
751062
Diary_Of_Young楼主2024/8/25 19:34
//P1045 苦恼的小明
 
#include<bits/stdc++.h>

using namespace std;

const int mod = 10007;
const int Eu = 10006;
const int N = 1234570; 

typedef long long LL;
typedef __int128 _i;

int n;
LL mi[N]; 
LL sum = 1;

LL read()
{
    LL k = 0, op = 1;
    char c = getchar();
    while(c < '0'||c > '9')
	{
		if(c == '-') op = -1;
		c = getchar();
	}
	while(c >='0'&& c<= '9')
	{
		k = k*10 + c -'0';
		c = getchar();
	}
    return k*op; 
} 
 

int Eular_lower(_i m)
{
	if(m < Eu)
		return m;
	else
		return m%Eu+Eu;
}

_i power(_i a,_i b,int p)
{
	_i ans = 1%p;
	for(;b;b>>=1){
		if(b&1) ans = ans * a;
		ans = Eular_lower( ans );
		a = (long long)a * a % p;
	}
	return ans;
}
 



int main()
{
	n = read();
	for(int i=1;i<=n;i++)
		mi[i] = read();
	
	for(int i=1;i<=n;i++)
	 	mi[i] = Eular_lower(mi[i]);
	 	
	/*	 	
	cout<<n<<endl;
	for(int i=1;i<=n;i++)
	{
		cout<<mi[i]<<" ";
	}
	*/
		
	sum = mi[n];
	for(int i = n - 1;i >= 2;i --)
	{
		sum = power(mi[i],sum,Eu);
		sum += Eu;
	}
	
	LL temp = power(mi[1],sum,mod); 
	printf("%lld",temp);
	return 0;
}
  
2024/8/25 19:34
加载中...