不理解(p7158)
  • 板块学术版
  • 楼主tianyun4188awa
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/10/8 21:09
  • 上次更新2024/10/8 23:15:54
查看原帖
不理解(p7158)
1415261
tianyun4188awa楼主2024/10/8 21:09

这里应该使用fastpower快速幂但是应该怎么改(别人的委托我帮他改)

#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
const int maxn=1e5+5;
int mod=998244353;
int f[maxn][2];

long long fastpower(long long a, long long b, long long p)
{
	long long ans = 0;
	a = a % p;
	while (b > 0)
	{
		if (b & 1)
		{
			ans = (ans * a) % p;
		 } 
		b = b >> 1;
		a = (a * a) % p;
	}
	return ans;
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int t,n,k;
	n=1e5;
	f[1][0]=8;f[1][1]=1;
	for(int i=2;i<=n;++i){
		f[i][0] = fastpower(f[i-1][1] + f[i-1][0], 9ull, mod);
		f[i][1] = fastpower(f[i-1][0] + f[i-1][1], 9ull, mod);
	}
	cin>>t;
	while(t--){
		cin>>n>>k;
		if(n==1)cout<<9<<endl;
		else cout<<f[n][0]<<endl;
	}
	return 0;
}
2024/10/8 21:09
加载中...