求助,自认为思路正确,WA on #54,对拍一中午拍不出错
查看原帖
求助,自认为思路正确,WA on #54,对拍一中午拍不出错
557510
AzureHair楼主2023/6/16 13:34
#include<bits/stdc++.h>
#define int long long
using namespace std;
int mod=1e9+7;
int m,a[200010],b[200010],s1[200010],s2[200010],cnt=0,ans=1;
map<int,int> mp;
int ksm(int x,int y)
{
	int tmp=1;
	while(y)
	{
		if(y&1)
		{
			tmp=tmp*x%mod;
		}
		x=x*x%mod;
		y>>=1;
	}
	return tmp%mod;
}
signed main()
{
	freopen("in.txt","r",stdin);
	freopen("b.txt","w",stdout);
	cin>>m;
	for(int i=1;i<=m;i++)
	{
		int x;
		cin>>x;
		if(mp[x])
		{
			a[mp[x]]++;
		}
		else
		{
			mp[x]=++cnt;
			a[mp[x]]=2;
			b[mp[x]]=x;
		}
	}
	s1[0]=1;s2[cnt+1]=1;
	for(int i=1;i<=cnt;i++)
	{
		s1[i]=s1[i-1]*a[i]%(mod-1);
	}
	for(int i=cnt;i>=1;i--)
	{
		s2[i]=s2[i+1]*a[i]%(mod-1);
	}
	for(int i=1;i<=cnt;i++)
	{
		int tmp=(s1[i-1]*s2[i+1]%(mod-1)*(a[i]*(a[i]-1)/2))%(mod-1);
		//cout<<tmp<<endl;
		ans=ans*ksm(b[i],tmp)%mod;
	}
	cout<<ans%mod<<endl;
	return 0;
}

大致思路为统计一个数在所有因数中的出现次数,求调,急急急急急

2023/6/16 13:34
加载中...