40pts求调(T431052)
  • 板块题目总版
  • 楼主LaoLiTou
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/5 17:21
  • 上次更新2024/10/5 19:21:12
查看原帖
40pts求调(T431052)
581117
LaoLiTou楼主2024/10/5 17:21

T431052 ChS,只得了40分,数据一大就会输出负数,是因为快速幂取完模之后有加有减造成的,这题该怎么处理大数呢?感觉高精度在时间效率上好像也过不了

#include<iostream>
#include<algorithm>
#include<vector>
#include<cmath>
#include<string.h>
#include<queue>
#include<iomanip>
#include<stack>
#include<stdio.h>
#include<set>
#include<ctime>
#include<list>
using namespace std;
typedef long long ll;

const ll mod = 998244353;

ll qpow(ll a, ll b, ll m)
{
	ll ret = 1;
	a %= m;
	while (b)
	{
		if (b & 1)
		{
			ret = ret * a % m;
			b--;
		}
		else
		{
			a = a % m * a % m;
			b >>= 1;
		}
	}
	return ret % m;
}

int main()
{
	int T;
	cin >> T;
	for (int I = 0; I < T; I++)
	{
		ll n;
		cin >> n;
		cout << (qpow(26, n, mod) + qpow(24, n, mod) - qpow(25, n, mod) * 2) % mod << endl;
	}
	return 0;
}
2024/10/5 17:21
加载中...