社区讨论

不理解(p7158)

学术版参与者 3已保存回复 8

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
8 条
当前快照
1 份
快照标识符
@m20gkkof
此快照首次捕获于
2024/10/08 21:10
去年
此快照最后确认于
2025/11/04 17:37
4 个月前
查看原帖
这里应该使用fastpower快速幂但是应该怎么改(别人的委托我帮他改)
CPP
#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;
}

回复

8 条回复,欢迎继续交流。

正在加载回复...