90 pts求调
查看原帖
90 pts求调
536163
_hxh楼主2024/9/8 20:33

这种做法是正确的吗?

最后两个点TLE了

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 998244353;
int n,ans = 1,val = 1,pos = 1;
int ksm(int a,int n)
{
	if (n == 0)
		return 1;
	if (n % 2 == 1)
		return ksm(a,n - 1) * a % mod;
	int pos = ksm(a,n / 2);
	return pos % mod * pos % mod;
}
signed main()
{
	cin >> n;
	for (int i = n;i >= 1;i--)
	{
		ans = ans * ksm(ksm(i,i),val) % mod;
		pos++;
		val += pos;
	}
	cout << ans << endl;
	return 0;
}
2024/9/8 20:33
加载中...